Я хочу написать скрипт python, который должен проверить, доступен ли конкретный IP-адрес или нет. Я новичок в программировании на питоне и понятия не имею, как выглядит код. ПомощьPing на определенный IP-адрес с использованием python
0
A
ответ
5
Вы можете использовать модуль подпроцесс и shlex модуль для разбора команды оболочки, как ниже
import shlex
import subprocess
# Tokenize the shell command
# cmd will contain ["ping","-c1","google.com"]
cmd=shlex.split("ping -c1 google.com")
try:
output = subprocess.check_output(cmd)
except subprocess.CalledProcessError,e:
#Will print the command failed with its exit status
print "The IP {0} is NotReacahble".format(cmd[-1])
else:
print "The IP {0} is Reachable".format(cmd[-1])
6
Вы можете попробовать:
>>> import os
>>> if os.system("ping -c 1 google.com") == 0:
... print "host appears to be up"
+0
Обратите внимание, что это не кросс-платформенным. – ikrase
Можете ли вы рассказать «shlex» в этом контексте? Кроме того, можно ли это сделать без использования «shlex»? – Goblin
@Goblin. Shlex.split() может быть полезна при определении правильной токенизации для args (для оболочки unix). Да, это можно сделать без shlex, тогда вам нужно будет сделать токенизацию вашей команды, например cmd = ["ping", " -c1 "," google.com "] и перейдите к subprocess.check_ouptut, эта работа выполняется с помощью shlex.split() для вас. для ссылки shlex прочитайте эту ссылку https://docs.python.org/2/library/shlex.html – Ram
Получил это. Благодаря тонну! – Goblin