编写一个脚本test_ip.py实现指定参数的远程主机网络探测
python test_ip.py 192.168.0.10 192.168.0.100
针对192.168.0.10~192.168.0.100范围内所有主机进行网络探测
#首先导入了subprocess用于执行外部命令
import subprocess
import sys
#定义了ping_host 函数
def ping_host(ip):
try:
result = subprocess.run(['ping', '-c', '3', ip], capture_output=True, text=True, timeout=5)
if result.returncode == 0:
print(f"{ip} is reachable.")
else:
print(f"{ip} is not reachable.")
except subprocess.TimeoutException:
print(f"{ip} timed out.")
if#检查命令行参数是否正确,然后将起始和结束IP拆分成网段,通过循环对范围内的每个IP执行 ping_host 函数进行网络探测 __name__ == "__main__":
if len(sys.argv)!= 3:
print("Usage: python test_ip.py start_ip end_ip")
sys.exit(1)
start_ip = sys.argv[1]
end_ip = sys.argv[2]
start_octets = list(map(int, start_ip.split('.')))
end_octets = list(map(int, end_ip.split('.')))
for i in range(start_octets[3], end_octets[3] + 1):
ip = f"{start_octets[0]}.{start_octets[1]}.{start_octets[2]}.{i}"
ping_host(ip)

被折叠的 条评论
为什么被折叠?



