如何利用Python的socket模块获取同一局域网内其他用户IP
时间: 2024-12-13 11:21:27 浏览: 4
在Python中,可以使用socket模块的`gethostbyname_ex()`函数来获取同一局域网内其他用户的IP地址。这个函数会返回一个包含所有可能的主机名、别名以及对应的IP地址的元组。以下是一个简单的示例:
```python
import socket
def get_ip_in_same_network(host):
try:
ip = socket.gethostbyname(host)
return ip
except socket.gaierror as e:
print(f"Failed to resolve host {host}: {e}")
return None
# 获取本机IP,通常用于找到本地网络的广播地址或其他设备
my_ip = get_ip_in_same_network('localhost')
if my_ip:
# 接下来你可以尝试通过广播地址查找同一网络内的其他设备,例如 '255.255.255.255'
broadcast_ip = "255.255.255.255"
other_ips = [get_ip_in_same_network(ip) for ip in [broadcast_ip] if get_ip_in_same_network(ip)]
if other_ips:
print("Other devices in the same network:")
for ip in other_ips:
print(ip)
else:
print("No other devices found.")
阅读全文