用python生成一个函数:函数的参数是局域网IP地址,返回该地址的设备是否在线
时间: 2024-05-15 14:16:40 浏览: 69
由于局域网的设备在线状态不同,可以有多种方式来判断设备是否在线,比如ping命令、ARP协议、socket连接等方法。这里给出一种基于ping命令的实现方式,使用Python的subprocess模块调用系统的ping命令来判断设备是否在线。
代码实现如下:
```python
import subprocess
def is_online(ip):
"""
判断给定IP地址的设备是否在线
:param ip: IP地址,字符串类型
:return: 如果设备在线,返回True;否则返回False
"""
try:
result = subprocess.check_output(['ping', '-c', '1', '-W', '1', ip])
# 如果返回结果中包含 "1 received",则设备在线
if "1 received" in result.decode('utf-8'):
return True
else:
return False
except subprocess.CalledProcessError:
return False
```
函数使用示例:
```python
ip = '192.168.1.100'
if is_online(ip):
print(f"{ip}设备在线")
else:
print(f"{ip}设备不在线")
```
注:上述实现方式使用了Linux系统的ping命令,如果在Windows系统下运行需要修改命令参数。
阅读全文