怎么用python获取局域网下其它主机的名称
时间: 2023-08-19 10:04:52 浏览: 101
可以使用Python的socket和os模块来获取局域网下的主机名。以下是一个简单的示例代码:
```python
import socket
import os
def get_local_ips():
ips = []
for interface in os.popen('ifconfig'):
if 'inet ' in interface:
ip = interface.split()[1]
if not ip.startswith('127.'):
ips.append(ip)
return ips
def get_hostnames():
hostnames = []
for ip in get_local_ips():
try:
hostname = socket.gethostbyaddr(ip)[0]
hostnames.append(hostname)
except socket.herror:
pass
return hostnames
print(get_hostnames())
```
该代码通过调用`ifconfig`命令来获取本地计算机的IP地址列表,然后使用`socket.gethostbyaddr()`函数来获取每个IP地址对应的主机名。请注意,该代码仅适用于Unix/Linux系统,对于Windows系统需要稍作修改。
阅读全文