尝试使用套接字扫描IP以获取Python中的域名

尝试使用套接字扫描IP以获取Python中的域名,python,sockets,dns,ip,Python,Sockets,Dns,Ip,我正在尝试从ip地址扫描域名。 这就是为什么我从文件中获取一个输入并将其拆分,amd使用循环更改了最后一个3digit。并检查所有随机ip。但它什么也没表现出来。并且存在具有域的有效ip f = open('ip.txt', 'r') r = f.readline() f.close() ips = r.split(".") ipc = ips[0] + "." + ips[1] + "." + ips[2] + "." for i in range(0, 256): ipm = ipc

我正在尝试从ip地址扫描域名。 这就是为什么我从文件中获取一个输入并将其拆分,amd使用循环更改了最后一个3digit。并检查所有随机ip。但它什么也没表现出来。并且存在具有域的有效ip

f = open('ip.txt', 'r')
r = f.readline()
f.close()
ips = r.split(".")
ipc = ips[0] + "." + ips[1] + "." + ips[2] + "."
for i in range(0, 256):
    ipm = ipc + str(i)
    ip = str('"' + ipm + '"')
    try:
        socket.gethostbyaddr(ip)
    except:
        pass

此处的缩进错误,请尝试以下操作:

for i in range(0,256):
    ipm=ipc+str(i)
    ip=str('"'+ipm+'"')
    try: 
        socket.gethostbyaddr(ip)
    except:
        pass

编辑:我还怀疑您可以简单地执行
ip=str(ipm)
,而无需添加额外的双引号。

它不会显示任何内容,因为您没有打印任何内容,甚至没有将
socket.gethostbyaddr
的结果捕获到某个变量中。。。你也没有以任何明智的方式对待异常……还有,你真正的目标是什么?由于并非所有IP地址都有PTR记录(当然,你忘记了IPv6),即使它们有PTR记录,你也不会从中了解到多少信息。你认为这与“域名”有什么关系?也许你问的是主机名?因为否则“我正试图从ip地址扫描域名”就没有意义了。这可能是我提到的双引号吗?