Python中本地网络的IP地址/主机名列表

2024-06-13 00:22:16 发布

您现在位置:Python中文网/ 问答频道 /正文

如何用Python轻松地从本地网络获取IP地址或主机名列表?

如果它是多平台的最好,但它需要先在Mac OS X上工作,然后其他人跟着工作。

编辑:本地是指本地网络中的所有活动地址,例如192.168.xxx.xxx

所以,如果我的计算机(在本地网络中)的IP地址是192.168.1.1,并且我有另外三台连接的计算机,我希望它返回IP地址192.168.1.2192.168.1.3192.168.1.4,可能还有它们的主机名。


Tags: 编辑列表osmac地址计算机平台xxx
3条回答

如果“本地”是指同一网段,则必须执行以下步骤:

  1. 确定自己的IP地址
  2. 确定自己的网络掩码
  3. 确定网络范围
  4. 扫描所有地址(除了最低的是您的网络地址,最高的是您的广播地址)。
  5. 使用DNS的反向查找来确定响应扫描的IP地址的主机名。

或者,您可以让Python在外部执行nmap并将结果管道化回您的程序中。

如果您知道可以使用的计算机的名称:

import socket
IP1 = socket.gethostbyname(socket.gethostname()) # local IP adress of your computer
IP2 = socket.gethostbyname('name_of_your_computer') # IP adress of remote computer

否则,您将不得不扫描与本地计算机(IP1)相同掩码的所有IP地址,如另一个答案中所述。

更新:脚本现在位于github

我写了一个small python script,它利用了scapyarping()

相关问题 更多 >