程序正在打印内存值而不是实际值

Program is printing memory values instead of actual values

这里有点脑残。我正在使用 nslookup 包,我想获取域的 IP 地址(在本例中为 google)。当我 运行 下面的代码时,我得到的输出是:“” 而不是 ip 地址。

代码:

import nslookup

theLook = nslookup.Nslookup()

print(theLook.dns_lookup(domain="google.com"))

是的,我知道这可能是一个愚蠢的问题,但我发誓,我一直在寻找答案,但找不到适合我的情况的答案。我也认为我以前可能已经能够解决这个问题,但我不记得是如何解决的。感谢您的任何回答。

您要求打印一个对象,该对象调用 Nslookup() 的内部 __repr__。响应位于 .answer 属性中,因此:

print(theLook.dns_lookup(domain="google.com").answer)

应该做你需要的。

文档也提供了更多详细信息: https://pypi.org/project/nslookup/

Returns an object containing two arrays:

response_full: the full DNS response string(s)

answer: the parsed DNS answer (list of IPs or SOA string)

但您也可以访问字典以获取更多详细信息

import nslookup

theLook = nslookup.Nslookup()

for x in theLook.__dict__:
    for m in theLook.__dict__[x]:
         print(m)

你会得到这样的输出

google.com. 151 IN A 74.125.24.102
google.com. 151 IN A 74.125.24.101
google.com. 151 IN A 74.125.24.139
google.com. 151 IN A 74.125.24.138
google.com. 151 IN A 74.125.24.100
google.com. 151 IN A 74.125.24.113
74.125.24.102
74.125.24.101
74.125.24.139
74.125.24.138
74.125.24.100
74.125.24.113