LINUX.ORG.RU

А теперь банановый... то есть на питоне


0

0

Опять таже задача. Пропинговать подсеть. Теперь надо реализовать это на питоне :)
import os
import sys

print "Please input IP"
bash = raw_input('>>')
out = bash.split(".")
comand = "ping -w 1 "
last = " | grep ^64 | awk '{print $4}' | sed 's/:/ /p' | sort -u "
i= "1"

while i != 256 :
comand = comand + out[0] + "." + out[1] + "." + out[2] + "." + i + last
os.system(comand)
i += 1
Валится оно естественно здесь:
i += 1
TypeError: cannot concatenate 'str' and 'int' objects

Читал доки, нащел про преобразование типов. Да только вот непомогло мне это. Помогите решить проблемку. Спасибо.

anonymous

> comand = "ping -w 1 "
> last = " | grep ^64 | awk '{print $4}' | sed 's/:/ /p' | sort -u "

и какой смысл использовать питон?

anonymous
()
Ответ на: комментарий от anonymous

Это я потом переделаю. Пока так, ибо с Питоном пока знаком неудовлетворительно.

anonymous
()

i = 1
while i != 256 :
    comand = comand + out[0] + "." + out[1] + "." + out[2] + "." + str(i) + last
    os.system(comand)
    i += 1 

kondor ★★★
()
Ответ на: комментарий от pento

Слышал. Только в любом случае для решения этой задачи придется заморочиться с IP.

i = 1

while i != 5 :
comand = comand + out[0] + "." + out[1] + "." + out[2] + "." + str(i)
os.system(comand)
i += 1
Далее:
Please input IP
>>10.0.4.1
PING 10.0.4.1 (10.0.4.1) 56(84) bytes of data.

--- 10.0.4.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

ping: unknown host 10.0.4.110.0.4.2
ping: unknown host 10.0.4.110.0.4.210.0.4.3
ping: unknown host 10.0.4.110.0.4.210.0.4.310.0.4.4

anonymous
()
Ответ на: комментарий от kondor

ИМХО Далее идет ошибка в логике и реализации Питона :)

#!/bin/bash

A=`echo $1 | awk -F. '{print $1}'`
B=`echo $1 | awk -F. '{print $2}'`
C=`echo $1 | awk -F. '{print $3}'`
D=`echo $1 | awk -F. '{print $4}'`

while [ $D -lt 255 ]
do
ping -w 1 $A.$B.$C.$D | grep ^64 | awk '{print $4}' | sed 's/:/ /p' | sort -u
D=`expr $D + 1`
done

anonymous
()
Ответ на: комментарий от pento

>Про сокеты и работу с ними слышал?
Что-бы пинговать нужны права root.

Marvin
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.