Python Script для Linux IP-перечисления - не работает должным образом - PullRequest
0 голосов
/ 07 ноября 2019

Я написал простой скрипт, который позволяет мне использовать цикл while для итерации команды ping в диапазоне ip.

Я не уверен, почему я продолжаю получать это сообщение потом:

Example of feedback from Terminal

Код выглядит следующим образом:

import os

ipnum = 0

iprange = '10.11.1.%s' % (ipnum)
while ipnum < 255:
    os.system("ping " + iprange)
    ipnum + 1**

Любая помощь будет оценена спасибо.

Ответы [ 3 ]

1 голос
/ 07 ноября 2019

Похоже, что вы хотите, это что-то вроде:

for ipnum in range(0, 255):
    os.system("ping 10.11.1.%s" % ipnum)

То, что ваш код в настоящее время делает, пинг 10.11.1.0 255 раз, потому что строка не обновляется только потому, что ipnum делает. Вы форматируете его один раз в начале, а затем не изменяете.

0 голосов
/ 08 ноября 2019

Вы используете некоторые инструменты, такие как nmap, angryip. Если вам нужен питон, мы можем переписать это

#!/usr/bin/python
import subprocess
target = 200
up = 0
down = 0
while (target < 255):
    ip = "10.11.1." +str(target)
    output = subprocess.Popen(["ping","-c","1",ip],stdout = subprocess.PIPE).communicate()[0]

    if ('Unreachable' in output):
            print 'Host ' + ip + " is offline or unavailable"
            down+= 1
    else:
            print "Host " + ip + " is online"
            up+= 1

    target = target+1


print "A total of " + str(up+down) + " hosts were scanned."
print str(up) + " hosts were alive, and " + str(down) + " hosts were unreachable. "
quit()
0 голосов
/ 07 ноября 2019

Если все, что вы пытаетесь сделать, это перечислить список активных IP-адресов в заданном диапазоне, почему бы не использовать то, что уже существует для этой цели?

Оформить заказ nmap:

sudo nmap -sn -n 10.11.1.0- -oG - | grep -i Host | cut -d" " -f2

Вышеприведенная команда:

  • nmap: сканировать сеть
  • -sn + -sP: пропустить сканирование портов
    • более быстрое обнаружение хоста
  • -n: пропустить обратное разрешение DNS
    • более быстрое обнаружение хоста
  • 10.11.1.-: перечислить более 10.11.1.0
    • тире указывает на перечисление
  • -oG -: преобразовать выходные данные для обработки данных
  • grep -i Host: отфильтровать выходные данные, чтобы показать только перечисляемые значения
    • удаляет верхний и нижний колонтитул вывода nmap
  • cut -d "" -f2: разбить вывод на столбцы, разделенные пробелами, а затем отфильтровать, чтобы показать только второй столбец.
    • показывает только ip-адреса

Пример вывода

sudo nmap -sn -n 10.11.1.0.- -oG - | grep Host | cut -d" " -f2                                                            
# 10.11.1.0.1
# 10.11.1.0.100
# 10.11.1.0.101
# 10.11.1.0.103
# 10.11.1.0.106
# 10.11.1.0.169
# 10.11.1.0.108

Nmap поддерживает сканирование диапазона сети текущих хостов, а также любыхдругой диапазон сети.


Если вам нужно выполнить это непосредственно из python, используйте модуль subprocess. https://docs.python.org/2/library/subprocess.html


Подробнее о nmap:

https://linux.die.net/man/1/nmap

...