如何使用Python获取本机和局域网IP地址与MAC地址

在今天的教程中,我们将学习如何使用Python编写一个小工具,用于获取本机和局域网中设备的IP地址和MAC地址。这个工具可以在网络维护和故障排除时非常有用,同时也是自由职业者提高效率的好帮手。通过本教程,您将了解如何使用Python来执行网络命令、解析命令输出,并将结果保存到文本文件中。

准备工作

在开始之前,确保您已经安装了以下两个Python库:

  • win32api:用于弹出Windows消息框。
  • win32con:用于定义Windows消息框的样式。

您可以使用以下命令来安装这两个库:

pip install pypiwin32

编写Python脚本

我们将编写一个Python脚本,它执行以下任务:

  1. 获取本机的IP地址和MAC地址。
  2. 获取局域网中其他设备的IP地址和MAC地址。
  3. 将获取到的结果保存到文本文件中。
  4. 弹出一个Windows消息框,提醒用户结果已保存。

以下是完整的Python代码:

import os
import win32api
import win32con

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

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]

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

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}')  # 注释掉此行则不弹窗提醒

运行脚本

现在,将上述代码保存为一个Python文件,然后运行它。脚本将执行获取本机和局域网IP地址与MAC地址的任务,并将结果保存到名为"ip_mac.txt"的文本文件中。如果您不需要弹出Windows消息框提醒,可以将msgbox函数的调用行注释掉。

结束语

通过这个简单的教程,您学会了如何使用Python编写一个小工具,用于获取本机和局域网中设备的IP地址和MAC地址。这个工具对于网络管理和自由职业者的日常工作都非常有用。希望这个教程对您有所帮助,祝您在自由职业生涯中取得成功!

声明:本站所有文章,如无特殊说明或标注,均为本站(王大神)原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
指数词

如何使用Python爬取百度贴吧内容

2023-11-26 10:57:50

指数词

如何使用Frida发送微信消息给好友

2023-11-26 11:03:33

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索