Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 20, 2015 14:47:44

kukuruku11
Зарегистрирован: 2015-06-18
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск модуля и варианта кода для работы с ip-адресами

py.user.next
я оборачиваю, в предыдущем сообщении под примеров кода написал
kukuruku11
Изменяю
hostname_response = os.system(“ping -c 1 -w2 ” +hostname_start + “ > /dev/null 2>&1”)
на hostname_response = os.system(“ping -c 1 -w2 ” +str(hostname_start) + “ > /dev/null 2>&1”)

выдает некорректное значение на выходе для все адресов:
“256”

Офлайн

#2 Июнь 20, 2015 15:10:34

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Поиск модуля и варианта кода для работы с ip-адресами

>>> import ipaddress
>>> import os
>>> 
>>> addr = ipaddress.IPv4Address('127.0.0.1')
>>> os.system('ping -c3 ' + str(addr) + ' 1>/dev/null')
0
>>>



Офлайн

#3 Июнь 20, 2015 23:54:25

kukuruku11
Зарегистрирован: 2015-06-18
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск модуля и варианта кода для работы с ip-адресами

py.user.next
Спасибо за помощь, нашел в чем была ошибка

Офлайн

#4 Июнь 24, 2015 20:39:33

kukuruku11
Зарегистрирован: 2015-06-18
Сообщения: 44
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск модуля и варианта кода для работы с ip-адресами

И снова доброго времени суток! Отработал исправленный код из этой темы на локальной сети и получил в качестве результата все хосты в оффлайне.
Сам код:

import os, ipaddress
position_start=input('Start hostname: ')
position_end=input('End hostname: ')
hostname_start = ipaddress.IPv4Address(position_start)
hostname_end = ipaddress.IPv4Address(position_end)
while hostname_start <= hostname_end:
    hostname_response = os.system("ping -c 1 -w 2" + str(hostname_start)+ "> /dev/null 2>&1")
    if hostname_response == 0:
        print (hostname_start, ' is up!\n')
    else:
        print (hostname_start, ' is down!\n')
    hostname_start += 1
input("\nPress the enter key to exit...")

Вот например код, где я работаю напрямую ip-адресм в виде строки, испольняется отлично
import os
hostname = "8.8.8.8" #example
response = os.system("ping -c 1 -w 2 " + hostname)
#and then check the response...
if response == 0:
  print (hostname, 'is up!')
else:
  print (hostname, 'is down!')

Думаю, что проблема в модуле ipaddres, но не могу понять где.


P.S Решено, проблема в пропущенном пробеле в сроке hostname_response = os.system(“ping -c 1 -w 2_____” + str(hostname_start)+ “> /dev/null 2>&1”)

Отредактировано kukuruku11 (Июнь 24, 2015 23:19:03)

Офлайн

#5 Июнь 25, 2015 00:32:20

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Поиск модуля и варианта кода для работы с ip-адресами

kukuruku11
hostname_response = os.system("ping -c 1 -w 2" + str(hostname_start)+ "> /dev/null 2>&1")

cmdfmt = 'ping -c 1 -w 2 "{}" &>/dev/null'
 
cmd = cmdfmt.format(str(hostname_start))
hostname_response = os.system(cmd)



Отредактировано py.user.next (Июнь 25, 2015 00:36:23)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version