写一个脚本,局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里,这是一个局域网内机器检查通讯的一个思路。以192.168.40.1~10为例
时间: 2024-12-08 11:14:00 浏览: 12
windows系统测试局域网内指定范围ip地址
你可以编写一个Python脚本来实现这个任务,利用socket模块的ping函数。以下是一个简单版本的脚本示例:
```python
import os
import socket
# 列出目标IP范围
ip_range = '192.168.40.1-10'
start_ip, end_ip = map(int, ip_range.split('-'))
# 初始化空列表存储ping通的和不通的IP
pinged_ips = []
unreachable_ips = []
# 遍历IP范围
for ip in range(start_ip, end_ip + 1):
try:
response = os.system("ping -c 1 {} > /dev/null 2>&1 && echo {}".format(ip, ip))
if response == 0: # ping命令返回0表示成功
pinged_ips.append(ip)
else:
unreachable_ips.append(ip)
except Exception as e:
print(f"Error checking {ip}: {e}")
# 将结果写入文件
with open('pinged_ips.txt', 'w') as f_pinged, open('unreachable_ips.txt', 'w') as f_unreachable:
for ip_list, file_name in [(pinged_ips, 'pinged_ips'), (unreachable_ips, 'unreachable_ips')]:
for ip in ip_list:
f=file_name + '.txt'
f.write(str(ip) + '\n')
f.flush()
print("Ping results saved to pinged_ips.txt and unreachable_ips.txt")
```
这个脚本会尝试ping每个指定的IP地址,如果能ping通,将其添加到`pinged_ips`列表;如果不行,则添加到`unreachable_ips`列表。最后,将两个列表的内容分别写入对应名称的文本文件。
阅读全文