点击上方网络技术干货圈,选择设为星标
优质文章,及时送达
转载请注明以下内容:
来源:公众号【网络技术干货圈】
作者:圈圈
ID:wljsghq
使用 Python 开发一个批量 ping 的小工具,可以利用 Python 的 os
或 subprocess
模块来执行系统命令。
首先,确保你的 Python 环境可以执行外部命令。在 Windows 上,你可以直接使用 ping
命令;而在 Linux 或 macOS 上,可能需要通过 /bin/ping
或者 /usr/bin/ping
来指定正确的命令路径。
这里提供一个基本的脚本,它接受一个 IP 地址列表,并对每个 IP 地址执行 ping 操作:
import subprocess
import platform
def ping_host(ip):
# 根据操作系统选择合适的ping命令
command = ["ping", "-c", "1", ip] if platform.system().lower() == 'linux' else ["ping", ip]
# 执行ping命令
response = subprocess.call(command, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
# 判断是否成功
if response == 0:
print(f"{ip} is reachable.")
else:
print(f"Failed to reach {ip}.")
def batch_ping(ips):
for ip in ips:
ping_host(ip)
if __name__ == "__main__":
# IP地址列表
ip_list = [
"192.168.3.9",
"192.168.3.66"
]
batch_ping(ip_list)
在这个脚本中,我们定义了一个 ping_host
函数,该函数根据当前操作系统(Linux 或 Windows)构造不同的 ping 命令。对于 Linux 系统,使用 -c 1
参数来发送单个 ICMP 请求包;对于 Windows,则直接使用 ping
命令。subprocess.call()
用于执行命令,并且我们将标准输出和错误输出重定向到空设备文件,以避免命令结果打印到控制台。
batch_ping
函数遍历 IP 地址列表,并对每个 IP 地址调用 ping_host
函数。
注意:这个脚本没有进行错误处理和输入验证,实际应用中你需要添加这些功能来增强程序的健壮性。此外,在生产环境中运行此类脚本之前,请确保你有权限对目标 IP 地址执行 ping 操作。
我们运行一下这个脚本试一下:
可以看到控制台打印:
192.168.3.9 is reachable.
192.168.3.66 is reachable.
怎么样,是不是很简单?
赶快去试试,你还可以根据自己的需要植入更多的功能。
---END---
重磅!网络技术干货圈-技术交流群已成立
扫码可添加小编微信,申请进群。
一定要备注:工种+地点+学校/公司+昵称(如网络工程师+南京+苏宁+猪八戒),根据格式备注,可更快被通过且邀请进群
▲长按加群
原文始发于微信公众号(网络技术干货圈):3分钟教你如何使用Python开发一个批量ping小工具?
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论