主要思路:
1.通过python psutil模块,并对网卡名称进行筛选得到对应网卡的IP地址和MAC地址
2.使用scapy库中的srp()函数发送二层数据包并获得返回值
3.使用type()函数分析返回值类型,查询对应的类中的方法,来提取关键信息
发送包的属性可以在scapy中查询,如:
查询本机对应网卡,IP,MAC 代码:
import psutil
def get_local(ifname):
dic = psutil.net_if_addrs()
for adapter in dic:
if adapter == ifname:
snicList = dic[adapter]
mac = '无 mac 地址'
ipv4 = '无 ipv4 地址'
ipv6 = '无 ipv6 地址'
for snic in snicList:
if snic.family.name in {'AF_LINK', 'AF_PACKET'}:
mac = snic.address
elif snic.family.name == 'AF_INET':
ipv4