从值列表中反向DNS查找 - Python
我正在用Python做DNS查询,使用的是Python 3.x。
我有一长串网址,格式像这样:
yahoo.com
google.com
linkedin.com
facebook.com
cnn.com
foxnews.com
这是我的脚本:
import socket
file = '/Users/Python/Scripts/URL-list.txt'
file_O=open(file, 'r')
for i in file_O:
print(i + socket.gethostbyname('i'))`
奇怪的是,当我一次运行一个网址时,它工作得很好,但当我对我的网址列表运行时,所有的网址都返回同一个IP。这里有个例子:
yahoo.com
69.16.143.64
google.com
69.16.143.64
linkedin.com
69.16.143.64
facebook.com
69.16.143.64
cnn.com
69.16.143.64
foxnews.com
69.16.143.64
你知道我哪里出错了吗?我猜可能是读取文本文件的方式有问题,但这个IP和任何一个网址都不对应。
1 个回答
3
那么你需要先去掉这一行的多余部分,然后再使用循环。像这样做就可以了:
import socket
file = '/Users/Python/Scripts/URL-list.txt'
f = open(file, 'r')
lines = f.readlines()
f.close()
for i in lines:
host = i.strip()
print("%s - %s" % (host, socket.gethostbyname(host)))