网络扫描脚本返回问号

2024-09-27 18:05:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行一个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?你知道吗


Tags: ip脚本scanrequestrootmediascapybroadcast
2条回答

可能是你在用Python3解释器运行你的代码。如果用Python2解释器运行它,它应该可以工作。你知道吗

斯卡皮告诉你它知道什么

您的ARP请求返回的是问号而不是IP,因为您尚未发送它们。在给出的代码中,您正在创建数据包,然后打印它们的摘要。如果要发送它们,请使用send functions之类的srp。要查看您可以访问的所有高级函数,包括发送函数,请在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>)

相关问题 更多 >

    热门问题