我搜索了一个标识符,我试图找到我服务器上任何连接设备的mac地址,但问题是输出返回空,例如
a = os.popen("arp -a 192.168.6.150 | awk '{print $4}'").readlines()
a为空
我正在处理强制网络门户页面以进行解开。 我想从网络设备的ip获取mac地址。 此代码在Apache服务器上运行。
from mod_python import apache
from mod_python import util
答案 0 :(得分:4)
如果找不到mac,则以下函数返回mac或None
。
import commands
def getmac(iface):
mac = commands.getoutput("ifconfig " + iface + "| grep HWaddr | awk '{ print $5 }'")
if len(mac)==17:
return mac
getmac('eth0')
答案 1 :(得分:1)
import re, uuid
print (' : '.join(re.findall('..', '%012x' % uuid.getnode())))
答案 2 :(得分:0)
您也可以将python scapy 模块用于同一
from scapy.all import *
def get_mac(ip_address):
responses,unanswered = srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=ip_address),timeout=2,retry=10)
# return the MAC address from a response
for s,r in responses:
return r[Ether].src
return None
get_mac("192.168.31.14")