我正在寻找一种方法(使用python)layer II
从本地网络上的设备获取地址。 Layer III
地址是已知的。
目标是建立一个脚本,该脚本将定期轮询IP地址数据库,以确保mac地址没有更改,如果有更改,则将电子邮件警报发送给我自己。
用Python回答问题取决于您的平台。我没有Windows,因此以下解决方案可在我写过的Linux机器上使用。对正则表达式进行小的更改将使其在OS
X中运行。
首先,您必须ping通目标。这将把目标(只要它在您的网络掩码之内,这听起来像是在这种情况下)就放置在系统的ARP缓存中。观察:
13:40 jsmith@undertow% ping 97.107.138.15
PING 97.107.138.15 (97.107.138.15) 56(84) bytes of data.
64 bytes from 97.107.138.15: icmp_seq=1 ttl=64 time=1.25 ms
^C
13:40 jsmith@undertow% arp -n 97.107.138.15
Address HWtype HWaddress Flags Mask Iface
97.107.138.15 ether fe:fd:61:6b:8a:0f C eth0
知道这一点,您就做了一点子处理的魔术-否则您自己编写了ARP缓存检查代码,而您不想这样做:
>>> from subprocess import Popen, PIPE
>>> import re
>>> IP = "1.2.3.4"
>>> # do_ping(IP)
>>> # The time between ping and arp check must be small, as ARP may not cache long
>>> pid = Popen(["arp", "-n", IP], stdout=PIPE)
>>> s = pid.communicate()[0]
>>> mac = re.search(r"(([a-f\d]{1,2}\:){5}[a-f\d]{1,2})", s).groups()[0]
>>> mac
"fe:fd:61:6b:8a:0f"
问题内容: 我需要一种跨平台的方法来在运行时确定计算机的MAC地址。对于Windows,可以使用“ wmi”模块,在Linux下,我能找到的唯一方法是运行ifconfig并在其输出中运行正则表达式。我不喜欢使用只能在一个OS上运行的程序包,而且更不用说容易出错的语法解析另一个程序的输出。 有谁知道跨平台方法(Windows和Linux)方法来获取MAC地址?如果没有,还有谁比我上面列出的方法更优雅
问题内容: 当前,提到的用于获取MAC地址的所有解决方案始终使用eth0。但是,如果接口不是以eth0开头,该怎么办呢?同样在OS X上,接口名称也不同。 eth0接口也可能存在但未使用。即不活跃,它没有一个IP。 因此,有没有一种方法可以获取第一个可用接口Active的MAC地址(即,它具有一个inet地址,我什至不希望有人拥有inet6)。 例如 注意:我更改了输出值。 因此,在这种情况下,我
本文向大家介绍如何使用Python提取MAC地址?,包括了如何使用Python提取MAC地址?的使用技巧和注意事项,需要的朋友参考一下 每台计算机都需要网络接口卡(NIC)才能成为网络或Internet的一部分。分配给该卡的地址称为MAC地址。MAC地址的值对于每个NIC都是唯一的。它也适用于其他可以连接到LAN或Internet的设备,例如打印机和路由器。 要找到MAC地址,我们使用以下方法之一
我有一个物联网设备,我知道该设备的Mac地址。我的物联网设备连接到我的wifi,我想知道有什么方法可以使用该设备的mac地址来了解其本地ip地址?我的要求是将android应用程序连接到同一个wifi,使用Mac地址搜索设备的ip地址,并建立TCP连接。到目前为止,我一直在搜索这个问题,我没有得到这个问题的完美答案,这真的需要< code>ssdp扫描,或者有任何其他方法可以做到这一点。 RARP
问题内容: 我需要获取运行程序的系统的mac地址。但我无法做到这一点。 我正在编写以下代码: 我得到以下结果: 我没有得到MAC地址,它为空。 我从这里看到了这个例子 问题答案: 如果您考虑了多个接口和一些空MAC地址(我在装有VMWare的Windows 7上运行Java 7(因此我有一些虚拟网络适配器)),那么这段代码似乎可以正常工作: 这是运行它时在计算机上看到的内容(经过消毒的版本): 这
问题内容: 我需要在Swift中获取iOS设备的IP地址。这不是其他有关此问题的重复!如果没有wifi IP地址,我只需要获取WiFiIP地址-我需要处理它。关于堆栈溢出有一些问题,但是只有返回IP地址的函数。: 在这里,我得到2个值-来自移动互联网的地址(我认为)和需要的WiFi地址。还有其他方法可以获取仅WiFi IP地址吗? 问题答案: 根据多个SO线程(例如,iOS网络接口名称的确切含义是