Я хочу свистеть диапазон IP-адресов в Python и печати либо: «IP-достижим с X% потери процентов пакета» или «IP-не достижимы с X% потерь пакетов»Python: Как выполнить ping диапазон IP-адресов?
Диапазон, который я хочу попробовать, это 192.168.0.X, где X - диапазон 0-255
Вот мой код;
import shlex
import subprocess
import os
for x in range(0, 256):
cmd=shlex.split("ping -cl 192.168.0." + str(x))
try:
output = subprocess.check_output(cmd)
except subprocess.CalledProcessError,e:
#Will print the command failed with its exit status
print "The IP {0} isn't reachable".format(cmd[-1])
else:
print "The IP {0} is reachable".format(cmd[-1])
Что не так с моим кодом? также я заметил, что когда я пытаюсь выполнить команду «ping -cl 192.168.0.2», она говорит, что -cl - это только команда администратора. Я администратор на своем компьютере, и я запускал cmd как admin, так что не так?
Я использую Windows, 8.1 Python v2.7.9
какая у вас операционная система? Если вы только в группе под названием «admin», этого недостаточно. вы должны быть 'root', чтобы контролировать скорость отправки пакетов ping, потому что ping может быть неправильно использован для наводнения других хостов. – stefreak
my os is Windows 8.1 –