@GilbertAmethyst

Как просканировать локальную сеть?

Здравствуйте.

Есть программа:
Advanced ip scanner

Задача:
Аналогично этой программе просканировать локальную сеть и получить подключенные к ней устройства с помощью Python. Все решения что я нашёл, по какой-то причине не находят те устройства, что находит эта программа. Локальная сеть организована с помощью роутера.

Текущий копипаста-код (python3):
Вкусная копипаста
import os
import time
from subprocess import Popen
import sys

devnull = open(os.devnull, 'wb')

p = []
active = 0
unknown = 0
passive = 0


for f_part in range(0,2):
    for s_part in range(0,256):
        ip = "192.168." + str(f_part) + "." + str(s_part)
        if os.name == 'nt':
            CREATE_NO_WINDOW = 0x08000000
            p.append((ip, Popen(['ping', '-c', '3', ip], stdout=devnull, creationflags=CREATE_NO_WINDOW)))
        else:
            p.append((ip, Popen(['ping', '-c', '3', ip], stdout=devnull)))
while p:
    for i, (ip, proc) in enumerate(p[:]):
        if proc.poll() is not None:
            p.remove((ip, proc))
            if proc.returncode == 0:
                print('%s Active' % ip)
                active = active + 1
            elif proc.returncode == 2:
                print('%s Unknown' % ip)
                active = unknown + 1
            else:
                print('%s Passive' % ip)
                passive = passive + 1
    time.sleep(.04)
devnull.close()


print("Your system: ",os.name)
print("Active  [ ",active," ]")
print("Passive [ ",passive," ]")
print("Unknown  [ ",unknown," ]")
input("")
Мой код говорит, что активных адресов в локальной сети нет:
5b4b5f7a84211332682233.jpegА вот результат из программы:
5b4b5f728d257586928924.jpegПодскажите, как решить эту задачу?
  • Вопрос задан
  • 2645 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы