scapy.srp () не отвечает с ожидаемым результатом - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь кодировать сетевой сканер и далее, как только я пытаюсь напечатать ответ, он ничего не показывает.

import scapy.all as scapy


def scan(ip):
    packet1 = scapy.ARP(pdst=ip)
    etherpacket = scapy.Ether(dst = 'ff:ff:ff:ff:ff:ff')

    broadcast_packet = etherpacket/packet1
    ans, unans = scapy.srp(broadcast_packet, timeout=10)

    print(ans.summary())





scan("192.168.1.1-254")

Ниже приведен результат.

$sudo python3 networkscanner.py 
Begin emission:
........Finished sending 1 packets.
..........
Received 18 packets, got 0 answers, remaining 1 packets
None

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Используйте встроенную в Scapy arping вместо этого для сканирования ARP:

from scapy.all import arping

arping("192.168.1.0/24")

Тогда в вашей оболочке:

$ python3 arping.py
Begin emission:
*****************Finished sending 256 packets.

Received 17 packets, got 17 answers, remaining 239 packets
  00:1b:78:20:ee:40 192.168.1.48
  a4:77:33:88:92:62 192.168.1.66
  6c:33:a9:42:6a:18 192.168.1.67
...

Документы Arping здесь .

0 голосов
/ 20 апреля 2020

Изменение должно происходить при вызове функции, оно должно быть / 24 не так, как написано выше.

import scapy.all as scapy


    def scan(ip):
        packet1 = scapy.ARP(pdst=ip)
        etherpacket = scapy.Ether(dst = 'ff:ff:ff:ff:ff:ff')

        broadcast_packet = etherpacket/packet1
        ans, unans = scapy.srp(broadcast_packet, timeout=10)

        print(ans.summary())





    scan("192.168.1.1/24")
...