Network Scanner脚本返回问号

问题描述 投票:0回答:2

我正在运行一个python脚本,作为我所报名的在线课程的写信,但我的脚本会抛出一些错误,我怀疑这些错误可能是我的设置问题,而不是代码问题。我已经附加了脚本和输出以供参考。

我不确定在这种情况下什么是好的故障排除步骤

#!/usr/bin/env python

import scapy.all as scapy


def scan(ip):
    arp_request = scapy.ARP(pdst=ip)
    broadcast = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
    arp_request_broadcast = broadcast/arp_request
    print(arp_request_broadcast.summary())

scan("10.0.0.1/24")

advenk@advenk:/media/root/Seagate/Tension/Github/Projects# python network_scanner.py
Ether / ARP who has ?? says ??
advenk@advenk:/media/root/Seagate/Tension/Github/Projects# python network_scanner.py
Ether / ARP who has ?? says ??

为什么我的ARP请求返回问号而不是IP?

python linux scapy
2个回答
0
投票

Scapy向您展示了所知道的内容

您的ARP请求正在返回问号而不是IP,因为您尚未发送它们。在给出的代码中,您正在创建数据包,然后打印它们的摘要。如果要发送它们,请像srp一样使用send functions之一。要查看您可以访问的所有高级功能(包括发送的功能),请在Scapy的提示符下使用lsc()

改为使用arping

要进行ARP扫描(这是您要尝试的操作),请改用Scapy内置的arping。我当前的本地网络是192.168.1.0/24,因此我将使用它来演示:

>>> arping("192.168.1.0/24")
Begin emission:
**********Finished sending 256 packets.
*
Received 11 packets, got 11 answers, remaining 245 packets
  00:2c:78:20:ee:40 192.168.1.48
  6c:34:ab:42:6b:18 192.168.1.67
  8c:f1:fe:81:36:90 192.168.1.162
  ...

(<ARPing: TCP:0 UDP:0 ICMP:0 Other:11>,
 <Unanswered: TCP:0 UDP:0 ICMP:0 Other:245>)

0
投票

可能是您正在使用Python3解释器运行代码。如果您使用Python2解释器运行它,它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.