用于python DNS编程的嵌套循环

用于python DNS编程的嵌套循环,python,dns,Python,Dns,为了从DNS服务器获取web服务器IP解析,我尝试循环浏览两个列表。我试图找出如何从每个DNS服务器IP的每个url获得IP解析。我的代码可以工作,但我只是想弄清楚如何循环遍历这两个列表,这样我就不必在每次运行代码时手动输入列表的索引 url = ["www.facebook.com","www.google.com","www.uiowa.edu"] #list of urls ips = ["168.1.79.229","156.1

为了从DNS服务器获取web服务器IP解析,我尝试循环浏览两个列表。我试图找出如何从每个DNS服务器IP的每个url获得IP解析。我的代码可以工作,但我只是想弄清楚如何循环遍历这两个列表,这样我就不必在每次运行代码时手动输入列表的索引

url = ["www.facebook.com","www.google.com","www.uiowa.edu"] #list of urls                              
ips = ["168.1.79.229","156.154.70.1","138.197.25.214","94.206.181.22","122.176.20.6","217.73.226.120","27.34.140.46","110.165.44.152","187.86.59.3","128.255.1.3"]

clientSocket = socket(AF_INET, SOCK_DGRAM)
message = create_DNS_query(url[i])
clientSocket.sendto(message, (ips[i], 53))
rMessage, address = clientSocket.recvfrom(1000)
ip = decode_dns_message(rMessage)
print ip
clientSocket.close()

只需嵌套循环,正如您在标题中所说:

for name in url:
    for dns in ips:
        clientSocket = socket(AF_INET, SOCK_DGRAM)
        message = create_DNS_query(name)
        clientSocket.sendTo(message, dns, 53)
        rMessage, address = clientSocket.recvfrom(1000)
        ip = decode_dns_message(rMessage)
        print "Server: {} Name: {} IP: {}".format(dns, name, ip)
        clientSocket.close

很抱歉,第二个列表没有被格式化为代码。出于某些原因,我无法理解,请将其缩进4个空格,就像其他所有内容一样。您所称的URL实际上是域名(URL以协议开头,看起来像
http://example.org/foo/bar
)。但更重要的是,您的程序的预期输出是什么?您是否已经编写了函数
创建\u DNS\u查询
解码\u DNS\u消息
?很抱歉,如果描述不清楚,这些函数正在向DNS服务器发送一条带有域名的消息,而DNS服务器是“ips”中的IP地址列表,并且DNS服务器正在发送带有该域名的web服务器的IP地址的响应。还有,是的,函数已经编写好了,我在这里调用它们。如果我需要用每个ip检查每个主机名,这是否有效?这正是它所做的。