【问题标题】:Trying To Scan IP For Getting Domain Name In Python With Socket尝试使用套接字在 Python 中扫描 IP 以获取域名
【发布时间】:2019-01-08 04:08:32
【问题描述】:

我正在尝试从 IP 地址扫描域名。 这就是为什么我从文件中获取输入并将其拆分,并用 loop 更改最后 3 位。并检查所有随机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

【问题讨论】:

  • 它什么也没有显示,因为你没有打印任何东西,你甚至没有将socket.gethostbyaddr 的结果捕获到某个变量中......你也没有真正以任何明智的方式处理异常......跨度>
  • 另外,你在那里的真正目标是什么?您将学到很少的信息,因为并非所有 IP 地址都有 PTR 记录(您当然会忘记 IPv6),即使它们有您认为这与“域名”有何关系?也许您在询问主机名?因为否则“我正在尝试从 ip 地址扫描域名。”没有任何意义。

标签: python sockets dns ip


【解决方案1】:

你这里的缩进是错误的,试试这个:

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

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

【讨论】:

  • @AndroWizard 会不会是我提到的双引号?
猜你喜欢
  • 2019-01-11
  • 2015-03-22
  • 2013-01-20
  • 2013-07-06
  • 1970-01-01
  • 2020-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多