查询内核arp缓存中与ip地址对应的mac地址
arpreq的Python项目详细描述
PythonC扩展,用于查询内核ARP缓存的MAC地址 给定的IP地址。
用法
arpreq模块公开一个函数arpreq,它将 将给定的IPv4地址解析为MAC地址。
IP地址只有在相同的情况下才能解析为MAC地址 子网作为您的计算机。
假设您当前的机器有地址192.168.1.10,并且 另一台地址为192.168.1.1的计算机位于同一子网上:
>>>importarpreq>>>arpreq.arpreq('192.168.1.1')'00:11:22:33:44:55'
如果IP地址不能解析为MAC地址,则不返回任何地址。
>>>arpreq.arpreq('8.8.8.8')isNoneTrue
IP地址也可以指定为int或富IP地址数据类型 共同的ipaddr、ipaddress或netaddr模块。
>>>arpreq.arpreq(0x7F000001)'00:00:00:00:00:00'>>>importnetaddr>>>arpreq.arpreq(netaddr.IPAddress('127.0.0.1'))'00:00:00:00:00:00'>>>importipaddr# on Python 2>>>arpreq.arpreq(ipaddr.IPv4Address('127.0.0.1'))'00:00:00:00:00:00'>>>importipaddress>>>arpreq.arpreq(ipaddress.IPv4Address(u'127.0.0.1'))'00:00:00:00:00:00'
支持的平台
这个扩展只在linux上测试过,但是它应该在 任何支持SIOCGARPioctl的平台,实际上 每个bsd、linux和mac操作系统。
更改日志
V0.3.3(2017-05-03)
- 禁用PYPY3上的PEP-489
- 在pypy3上禁用pymodule\u getstate
- 提供Debian软件包
V0.3.2(2017-05-03)
- 支持点对点VETH对(参见6)
- 接受python 2上的unicode对象和python 3上的bytes对象(请参见5)
- 一些测试改进
V0.3.1(2016-07-06)
- 不要使用private pyerr chaineexceptions(debian jessie上的中断)
v0.3.0(2016-06-26)
- 在Python3.5+上使用PEP 489多阶段扩展模块初始化
- 如果模块初始化失败,请关闭套接字
- 代码清理
V0.2.1(2016-06-26)
- 修复内存集溢出
v0.2.0(2016-06-09)
- 提供python轮子
- 支持int和富IP地址对象作为IP地址参数
- 在arpreq期间释放gil
- 添加单元测试
- 重新创建mac字符串
- 重新构造模块初始化
V0.1.0(2015-11-28)
- 初始版本