0

我正在尝试对网络扫描仪进行编码,并且一旦我尝试打印响应,它就不会显示任何内容。

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
4

2 回答 2

0

使用 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 文档在这里

于 2020-04-16T22:23:16.173 回答
0

变化应该在函数被调用的时候,它应该是/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")
于 2020-04-20T11:22:52.970 回答