欢迎光临UUpython
最大、最新、最全的Python代码收集站

一键提取局域网在线IP和对应Mac地址 

这段代码用于获取局域网内在线设备的IP地址和MAC地址,并分别将其存储在IP列表和MAC列表中。通过调用get_ip()函数可以获取IP列表,通过调用get_mac()函数可以获取MAC列表。以下是代码的解释和完整版本:

import os
import re

# 获取局域网在线IP和对应Mac地址
def get_ip_mac():
    ip_mac = os.popen('arp -a')
    ip_mac = ip_mac.read()
    ip_mac = ip_mac.split('\n')
    ip_mac = ip_mac[3:-1]
    ip_mac_list = []
    for i in ip_mac:
        ip_mac_dict = {'ip': re.findall(r'(\d+\.){3}\d+', i)[0],
                       'mac': re.findall(r'(([0-9a-fA-F]{2}-){5}[0-9a-fA-F]{2})', i)[0][0]}
        ip_mac_list.append(ip_mac_dict)
    return ip_mac_list

# 获取局域网在线IP
def get_ip():
    ip_mac_list = get_ip_mac()
    ip_list = []
    for i in ip_mac_list:
        ip_list.append(i['ip'])
    return ip_list

# 获取局域网在线Mac地址
def get_mac():
    ip_mac_list = get_ip_mac()
    mac_list = []
    for i in ip_mac_list:
        mac_list.append(i['mac'])
    return mac_list

if __name__ == '__main__':
    print(get_ip())
    print(get_mac())

解释和注意事项:

  1. 代码中使用了os.popen('arp -a')来执行arp -a命令,该命令用于查看局域网内的ARP缓存表,从而获取局域网中在线设备的IP和MAC地址。这种方法仅适用于Windows系统。
  2. 正则表达式用于从命令输出中提取IP和MAC地址。re.findall(r'(\d+\.){3}\d+', i)[0]用于提取IP地址,re.findall(r'(([0-9a-fA-F]{2}-){5}[0-9a-fA-F]{2})', i)[0][0]用于提取MAC地址。
  3. ip_mac_list列表存储每个设备的IP和MAC信息,最终get_ip()get_mac()函数分别提取IP列表和MAC列表。
  4. 代码适用于获取局域网中在线设备的IP和MAC信息,但请注意在实际使用时,一些设备可能因为安全策略或网络配置的不同,可能无法被正常获取。
  5. 请确保你的使用行为是合法合规的,并且仅在你有权限和合法目的下使用该代码。
赞(0) 打赏
未经允许不得转载:UUpython » 一键提取局域网在线IP和对应Mac地址 
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!