好吧,第一步是将单行拆分为多行:
host = socket.gethostbyaddr(ip)
现在,您可以为所欲为。如果您不知道自己想做什么,请尝试打印host出type(host). 您会发现它tuple包含 3 个元素(尽管在这种情况下,您可能已经从写入文件的字符串中猜到了),并且您想要第一个。所以:
hostname = host[0]
或者:
hostname, _, addrlist = host
现在,您可以将其写入输出:
destfile.write('{} resolves to {}'.format(ip, hostname))
发现相同信息的另一种方法是查看文档,其中说:
返回一个三元组 (hostname, aliaslist, ipaddrlist),其中 hostname 是响应给定 ip_address 的主要主机名,aliaslist 是相同地址的备用主机名列表(可能为空),ipaddrlist 是 IPv4/v6 地址列表对于同一主机上的同一接口(很可能只包含一个地址)。
或者使用解释器中的内置帮助:
>>> help(socket.gethostbyaddr)
gethostbyaddr(host) -> (name, aliaslist, addresslist)
Return the true host name, a list of aliases, and a list of IP addresses,
for a host. The host argument is a string giving a host name or IP number.