发送ping时Python出现参数错误

1 投票
1 回答
3729 浏览
提问于 2025-04-18 01:02

我正在尝试发送ping请求,以找出我的子网中有哪些设备,所以我找到了这个:

response = os.system("ping -c 1" +hostname)

但是当执行到这一行时,它给我报了个错:

bad parameter -c 

我需要发送ping请求,并且希望得到的回应是:没有回应时返回1,有回应时返回0。谁能帮帮我呢?

谢谢!

1 个回答

0

你把response设置成了函数的退出代码。这里的0代表成功,如果不是0,那就表示出现了某种错误,但不一定是1。你可以直接检查一下response != 0,这样就能知道是不是失败了。另外,os.system的返回值在不同的操作系统上可能会有所不同,你可以查看这个链接了解更多。你可能还想了解一下subprocess模块。

Windows上,把-c替换成-n

>>> import os
>>> response = os.system("ping -c 1 " + "127.0.0.1")
>>> response
0
>>> response = os.system("ping -c 1 " + "abc")
>>> response
512
>>> response = os.system("ping -c 1 " + "12.0.0.1")
>>> response
256
>>> import subprocess
>>> subprocess.call(["ping", "-c", "1", "127.0.0.1"])
>>> response = subprocess.call(["ping", "-c", "1", "127.0.0.1"])
>>> response
0
>>> response = subprocess.call(["ping", "-c", "1", "abc"])
>>> response
2
>>> response = subprocess.call(["ping", "-c", "1", "12.0.0.1"])
>>> response
1

撰写回答