使用python编写一个小的网络程序时,程序如下:
import scapy.all as scapy
def scan(ip):
arp_request = ARP(pdst=ip)
arp_request.show()
broadcast = scapy.Ether(dst= "ff:ff:ff:ff:ff:ff")
arq_request_broadcast = broadcast/arp_request
answered,unanswered = scapy.srp(arq_request_broadcast, timeout=1)
print(answered.summary)
if __name__ == '__main__':
scan("192.168.0.105")
总是报错 “scapy No such device exists (No such device exists)”
根据错误信息的提示,大概了解了,是由于winpcap的服务没有启动导致的。
首先,确保本地机器已经安装了winpcap。打开程序控制面板
其次,要找到winPcap的安装位置,这里可以使用一个比较好用的工具Everything,输入winpcap,找到winpcap的安装位置,如下:
然后,再使用命令行工具,进入到指定位置,运行rpcap.exe, 如下图:
这里虽然显示按CTRL+C停止服务器,但是,其实,按了CTRL+C之后,依然可以继续执行程序。
最后,再执行程序试试,就可以正确地执行了。