首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过读行查找网站IP

问通过读行查找网站IP
EN

Stack Overflow用户
提问于 2018-08-12 05:21:57
回答 3查看 61关注 0票数 1

我试图实现一个任务,脚本可以加载一个文件,遍历行,并从每一行中查找域ip。

尝试使用以下代码执行此操作:

代码语言:javascript
复制
import socket

with open('test.txt','r') as f:
    for i in f.readlines():
        i.strip('\n')
        i.strip('\t')
        i.strip('\r')
        print(socket.gethostbyname(i))

f.close()

但却显示出错误

追溯(最近一次调用):文件"ip.py",第8行,打印(socket.gethostbyname(I)) socket.gaierror: Errno -2名称或服务不知道

任何帮助都将不胜感激。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-12 06:11:18

问题是string.strip不修改文档中的字符串

返回字符串的副本,并删除前导字符和尾随字符。

因此,您可以执行如下操作:

代码语言:javascript
复制
import socket

with open('test.txt','r') as f:
    for i in f.readlines():
        i = i.strip('\n')
        i = i.strip('\t')
        i = i.strip('\r')
        print(socket.gethostbyname(i))

f.close()

在如下所示的test.txt上运行该程序:

代码语言:javascript
复制
test.com
google.com
yahoo.com

我得到:

代码语言:javascript
复制
69.172.200.235
172.217.26.110
98.138.219.232
票数 3
EN

Stack Overflow用户

发布于 2018-08-12 05:37:53

你能在下面试试吗。啊,真灵。问题是,除了主机名之外,您可能还有其他字符串,主机名可能会引发异常。

代码语言:javascript
复制
import socket

a = ['word2','www.google.co.in','word3']
for i in a:
    try:
        i.strip('\n')
        i.strip('\t')
        i.strip('\r')
        print(socket.gethostbyname(i))
    except socket.gaierror:
        print("Unable to get Hostname and IP")

输出:

代码语言:javascript
复制
Unable to get Hostname and IP
172.217.195.94
Unable to get Hostname and IP
票数 0
EN

Stack Overflow用户

发布于 2018-08-12 06:09:45

问题解决了。

我没有在i变量中保存拆分结果,该变量没有删除每个域之后的新行字符。感谢各位的评论。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51805947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档