微信关注,获取更多

如何使用Python获取局域网内的IP与MAC地址

当我和一群朋友一起参加一场网络游戏对战时,有一个问题开始困扰我们:如何确保只有我们这群朋友在局域网内?我们想知道是否有其他人也连接到了我们的网络。一个念头突然冒出来,为什么不使用Python来检测局域网内所有的设备IP和MAC地址呢?这样我们就可以轻松识别并管理网络内的设备了。于是,我开始写下了以下的代码。

1. 开始之前

在开始之前,确保你的电脑上已经安装了win32apiwin32con这两个库。如果没有,你可以通过pip进行安装。

2. 弹出消息框

使用win32api我们可以轻松地在Windows上弹出一个消息框来显示信息。

def msgbox(msg, title='提醒'):
    win32api.MessageBox(0, msg, title, win32con.MB_OK)

3. 获取本机的IP和MAC地址

利用ipconfig命令,我们可以获取到本机的IP和MAC地址信息。

def local_ip_mac():  # 本机IP和MAC
    output = os.popen('ipconfig /all')
    for i in output:
        if '物理地址.' in i:
            mac = i.split(':')[1].strip()
        if 'IPV4' in i.upper() and '(' in i:
            ip = i.split(':')[1].split('(')[0].strip()
    if ip and mac:
        return [ip, mac]

4. 获取局域网内的IP和MAC地址

通过arp命令,我们可以查看局域网内所有设备的IP和MAC地址。

def lan_ip_mac():  #局域网IP和MAC
    ls = []
    output = os.popen('arp -a')
    for i in output:
        if '动态' in i:
            ip, mac, _ = i.strip().split()
            ls.append([ip, mac])
    return ls

5. 将结果写入到文件中

最后,我们将结果写入到一个txt文件中,以便后续查看。

if __name__ == '__main__':
    res = lan_ip_mac()
    res.append(local_ip_mac())
    print(res)

    # 结果写入文本
    txt = 'ip_mac.txt'
    out_txt = '\n'.join(['\t'.join(i) for i in res])
    with open(txt, 'w') as f:
        f.write(out_txt)

    msgbox(f'提取结果已保存到:{txt}')  #注释掉此行则不弹窗提醒

6. 结论

使用上述方法,我们可以轻松地获取到局域网内所有设备的IP和MAC地址,从而轻松管理网络设备。希望这篇教程能够帮助到你。

未经允许不得转载:大神网 » 如何使用Python获取局域网内的IP与MAC地址

相关推荐

    暂无内容!