【问题标题】:printing hostnames of PCs on the network using nmap (Python)使用 nmap (Python) 在网络上打印 PC 的主机名
【发布时间】:2016-03-22 18:50:11
【问题描述】:

我正在使用 python2.7 并尝试扫描我的网络并在我的 n/w 上打印 PC 的主机名,我查看了 nmap 的官方文档,我试过但它不起作用我不知道为什么 。请指导我完成整个过程或告诉我哪里出错了。在此先感谢:)

hosts_list = [(x, nm[x]['status']['state'],nm[x].hostname()) for x in nm.all_hosts()]
   for host, status,name in hosts_list:
      print('{0}:{1}:{2}'.format(host, status,name))

【问题讨论】:

    标签: python nmap


    【解决方案1】:

    您可以使用sacket 获取host name

    import socket
    import nmap
    
    nm = nmap.PortScanner()
    nm.scan(hosts='192.168.1.0/24', arguments='-n -sP -PE -PA21,23,80,3389')
    
    hosts_list = [(x, nm[x]['status']['state'],socket.gethostbyaddr(x)[0]) for x in nm.all_hosts() if socket.gethostbyaddr(x)[0]]
    for host, status,name in hosts_list:
      print('{0}:{1}:{2}'.format(host, status,name))
    

    输出:

    192.168.1.1:up:TP-LINK
    192.168.1.102:up:android-XXX
    192.168.1.105:up:DESKTOP-XXX
    192.168.1.107:up:android-XXX
    

    【讨论】:

      【解决方案2】:

      从链接的第一行开始:

      This is a python class to use nmap and access scan results from python3
      

      您说您使用的是 2.7...检查一下,可能是您的问题。

      【讨论】:

      • 我试过 libnmap 但它只能将我的本地计算机的名称显示为 localhost 它不会在我的 n/w 上显示其他 PC 的名称。我现在该怎么办 ?有什么建议吗?
      猜你喜欢
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 2011-04-12
      • 2013-01-22
      • 1970-01-01
      相关资源
      最近更新 更多