1
import scapy.all as scapy
import requests
import json

此代码与 API 一起用于获取有关供应商的信息

def vender_finding(mac_adr):
   mac_url = 'http://macvendors.co/api/%s'
   vender = (requests.get(mac_url % mac_adr))
   response_dict = json.loads(json.dumps(vender.json()))
   return response_dict['result']['company']

此代码返回连接到网络的所有设备。结果是这样的

这段代码的结果

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

这是给出错误的行

   answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0]

   clents_list = []
   for element in answered_list[1:]:
      company = vender_finding(element[1].hwsrc)
      clent_dict = {"ip": element[1].psrc, "mac": element[1].hwsrc, "vender": company}
      clents_list.append(clent_dict)
      print(clents_list)
   return clents_list


 scan('192.168.1.0/24')

但现在它的返回错误是这样的。现在在这里开始出现一个新的错误。

answered_list = scapy.srp(arp_request_broadcast, timeout=1, verbose=False)[0]

这是我得到的错误。

raise ValueError("Unknown network interface %r" % name)
ValueError: Unknown network interface None
4

2 回答 2

1

您可以使用网络接口尝试“iface”。前任:

sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="eth1")

更多信息:https ://scapy.readthedocs.io/en/latest/usage.html

于 2019-03-11T09:17:37.157 回答
1

通过安装以下软件问题解决。

1.python 2.7.2 来自 python.org

2.Microsoft Visual C++ Compiler for Python 2.7 来自https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266

(查看此链接了解更多信息。需要 Microsoft Visual C++ 9.0

3.pip install scapy==2.4.3rc1 (这是 StackOverflow 贡献者推荐的。这个效果很好。)

(检查这些链接答案以获取用户 Cukic0d 的建议。Windows界面的 GUID 编号给出错误:ValueError: Unknown network interface '{1619EEF1-4D71-4831-87AC-8E5DC3AA516A}'

4.winpcap(执行scapy sniff()必须安装这个)

安装 python 2.7.2,然后安装 Microsoft Visual C++ Compiler for Python 2.7

于 2019-03-11T08:32:54.603 回答