当前位置:首页 > 操作系统 > MacOs

使用python从MAC获取IP地址

我的局域网中有一台设备,并且知道其MAC地址.它通过DHCP自动获取IP地址.我想获得此IP.

我不想使用nmap,但因为我是从Kivy应用程序导入的,所以Scapy会很好.

我发现:

<code>from scapy.all import srp, Ether, ARP
ans,unans=srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst="192.168.1.0/24"),timeout=2)
</code>

<code>ans.summary()
</code>

我得到以下输出:

<code>Ether / ARP who has 192.168.43.1 says 192.168.43.92 ==> Ether / ARP is at 3e:f8:d9:45:1b:3d says 192.168.43.1
</code>

我的两个问题是:

1:我必须使用sudo python运行脚本,我不确定kivy中的权限.

2:是否有一种简单的方法可以从.summary()中获取IP / MAC变量?

解决方法:

是的,您可以使用Scapy.这是ARP is-at数据包的示例:

<code>###[ Ethernet ]###
  dst= 08:00:27:fa:25:8e
  src= 08:00:27:b1:af:68
  type= 0x806
    ###[ ARP ]###
     hwtype= 0x1
     ptype= 0x800
     hwlen= 6
     plen= 4
     op= is-at
     hwsrc= 08:00:27:b1:af:68
     psrc= 192.168.56.102
     hwdst= 08:00:27:fa:25:8e
     pdst= 192.168.56.101
        ###[ Padding ]###
            load= 'x00x00x00x00x00x00x00x00x00x00x00x00x00x00 x00x00x00x00'
</code>

您可以将hwsrc和psrc值分配给这样的变量

<code>srcMAC = pkt[ARP].hwsrc
srcIP = pkt[ARP].psrc
</code>

或者只是像这样打印它们

<code>print pkt[ARP].hwsrc
print pkt[ARP].psrc
</code>

希望能有所帮助.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐