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
通过安装以下软件问题解决。
1.Python 2.7.2来自python.org
2. python 2.7的Microsoft Visual C 编译器,来自https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266。
(请检查此链接以获取更多信息。需要Microsoft Visual C 9.0)
3.PIP安装scapy == 2.4.3rc1(这是由Stackoverflow贡献者推荐的。这项工作很好。)
(检查这些链接答案,以获取用户Cukic0d的建议。Wigh的Windows接口的GUID数字给出错误:valueError:未知网络接口'{{1619EEF1-4D71-4831-87AC-87AC-8E5DC3AAA516A}')
4.winpcap(要执行Scapy Sniff()必须安装此)
安装Python 2.7.2,然后安装Microsoft Visual C 编译器,用于Python 2.7
您可以使用网络接口尝试" IFACE"。例如:
sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="eth1")
更多信息:https://scapy.readthedocs.io/en/latest/usage.html