Python3修改电脑mac地址

Python3修改电脑mac地址说明 仅供学习使用 请勿用于非法用途 若有侵权 请联系博主删除作者 zhu 博客 https blog csdn net zhu 一 查看电脑 mac 方式 1 ipconfig all 查看本地连接物理地址 注意 是本地连接的物理地址 操作如下 方式 2 依次进入控制面板网络和 Internet 网络连接 注意 是本地连接的物理地址 右键本地连接属性配置高级本地管理地址 输入要修改的 mac

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除

作者:zhu

博客:https://blog.csdn.net/zhu

一、查看电脑mac

方式1: ipconfig /all 查看 本地连接 物理地址,注意:是 本地连接 的物理地址。

操作如下:

Python3修改电脑mac地址

Python3修改电脑mac地址

方式2:依次进入 控制面板–网络和 Internet–网络连接,注意:是 本地连接 的物理地址。

Python3修改电脑mac地址

右键 本地连接 –属性–配置–高级–本地管理地址,输入要修改的mac地址,确定。

Python3修改电脑mac地址

Python3修改电脑mac地址

二、手动修改电脑mac

在上述 方法2 的基础上,手动修改成新mac地址(3CEBE),确认保存即可,查看检查确认。

Python3修改电脑mac地址

验证是否生效:

Python3修改电脑mac地址

三、Python修改电脑 本地连接 mac地址

运行效果:

本地连接 Intel(R) 82579LM Gigabit Network Connection

完整代码:

# @Time : 2021/6/24 22:30 # @Author : Tesla # @File : 13.修改本地连接mac地址.py # @Software: PyCharm # Csdn : https://blog.csdn.net/zhu import ctypes import platform import re import subprocess import sys import winreg class SetMac(object): """ 修改 本地连接 mac地址 """ def __init__(self): # regex to MAC address like 00-00-00-00-00-00 or 00:00:00:00:00:00 or # 000000000000 self.MAC_ADDRESS_RE = re.compile(r""" ([0-9A-F]{1,2})[:-]? ([0-9A-F]{1,2})[:-]? ([0-9A-F]{1,2})[:-]? ([0-9A-F]{1,2})[:-]? ([0-9A-F]{1,2})[:-]? ([0-9A-F]{1,2}) """, re.I | re.VERBOSE) # re.I: case-insensitive matching. re.VERBOSE: just look nicer. self.WIN_REGISTRY_PATH = "SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}" def is_admin(self): """ is user an admin? :return: """ if ctypes.windll.shell32.IsUserAnAdmin() == 0: print('Sorry! You should run this with administrative privileges if you want to change your MAC address.') sys.exit() else: print('admin') def get_macinfos(self): """ 查看所有mac信息 :return: """ print('=' * 50) mac_info = subprocess.check_output('GETMAC /v /FO list', stderr=subprocess.STDOUT) mac_info = mac_info.decode('gbk') print('Your MAC address:\n', mac_info) def get_target_device(self): """ 返回 本地连接 网络适配器 :return: """ mac_info = subprocess.check_output('GETMAC /v /FO list', stderr=subprocess.STDOUT) mac_info = mac_info.decode('gbk') search = re.search(r'(本地连接)\s+网络适配器: (.+)\s+物理地址:', mac_info) target_name, target_device = (search.group(1), search.group(2).strip()) if search else ('', '') if not all([target_name, target_device]): print('Cannot find the target device') sys.exit() print(target_name, target_device) return target_device def set_mac_address(self, target_device, new_mac): """ 设置新mac地址 :param target_device: 本地连接 网络适配器 :param new_mac: 新mac地址 :return: """ if not self.MAC_ADDRESS_RE.match(new_mac): print('Please input a correct MAC address') return # Locate adapter's registry and update network address (mac) reg_hdl = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE) key = winreg.OpenKey(reg_hdl, self.WIN_REGISTRY_PATH) info = winreg.QueryInfoKey(key) # Find adapter key based on sub keys adapter_key = None adapter_path = None target_index = -1 for index in range(info[0]): subkey = winreg.EnumKey(key, index) path = self.WIN_REGISTRY_PATH + "\\" + subkey if subkey == 'Properties': break # Check for adapter match for appropriate interface new_key = winreg.OpenKey(reg_hdl, path) try: adapterDesc = winreg.QueryValueEx(new_key, "DriverDesc") if adapterDesc[0] == target_device: adapter_path = path target_index = index break else: winreg.CloseKey(new_key) except (WindowsError) as err: if err.errno == 2: # register value not found, ok to ignore pass else: raise err if adapter_path is None: print('Device not found.') winreg.CloseKey(key) winreg.CloseKey(reg_hdl) return # Registry path found update mac addr adapter_key = winreg.OpenKey(reg_hdl, adapter_path, 0, winreg.KEY_WRITE) winreg.SetValueEx(adapter_key, "NetworkAddress", 0, winreg.REG_SZ, new_mac) winreg.CloseKey(adapter_key) winreg.CloseKey(key) winreg.CloseKey(reg_hdl) # Adapter must be restarted in order for change to take affect # print 'Now you should restart your netsh' self.restart_adapter(target_index, target_device) def restart_adapter(self, target_index, target_device): """ Disables and then re-enables device interface """ if platform.release() == 'XP': # description, adapter_name, address, current_address = find_interface(device) cmd = "devcon hwids =net" try: result = subprocess.check_output(cmd, stderr=subprocess.STDOUT) except FileNotFoundError: raise query = '(' + target_device + '\r\n\s*.*:\r\n\s*)PCI\\\\(([A-Z]|[0-9]|_|&)*)' query = query.encode('ascii') match = re.search(query, result) cmd = 'devcon restart "PCI\\' + str(match.group(2).decode('ascii')) + '"' subprocess.check_output(cmd, stderr=subprocess.STDOUT) else: cmd = "wmic path win32_networkadapter where index=" + str(target_index) + " call disable" subprocess.check_output(cmd) cmd = "wmic path win32_networkadapter where index=" + str(target_index) + " call enable" subprocess.check_output(cmd) def run(self): self.is_admin() self.get_macinfos() target_device = self.get_target_device() self.set_mac_address(target_device, '3CEBE') self.get_macinfos() if __name__ == '__main__': set_mac = SetMac() set_mac.run() 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233104.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月15日 下午12:01
下一篇 2025年8月15日 下午12:22


相关推荐

  • 3分钟搞定下载微信视频号视频!无需第三方软件,亲测有效!

    3分钟搞定下载微信视频号视频!无需第三方软件,亲测有效!2020年是视频号的元年,现在2021视频号还处在发展初期,但是它的潜力是巨大的,将来的价值会超过抖音。你在视频号上点赞的视频,你的好友都会看到,这一点非常有利于营销推广。但抖音上的粉丝和微信联系人是割裂的,我们所有的社交关系都在微信上。但是视频号的短视频内容无法像抖音、快手一样,保存本地或者复制作品链接进行解析下载。有没有其他小技巧能绕过视频号未完善的功能,直接保存视频内容呢?当然有,请记住一句话,在android的系统中,视频是所见即所得本文只针对android系统,不需要借助任何第三方软件,

    2022年6月17日
    51
  • s一般怎么称呼自己的m_一般要怎么选合适自己的中频熔炼炉呢?

    s一般怎么称呼自己的m_一般要怎么选合适自己的中频熔炼炉呢?中频熔炼炉全称“中频感应式熔炼炉”,又名中频熔金机,在金属熔炼领域有着广泛的应用,特别是对于首饰铸造加工行业,起着至关重要的地位。市面上的中频熔炼炉那么多要怎么去选择呢?要如何去选择一款安全可靠的设备支持我们的企业的生产不掉链子呢?那就点从下面几个因素开始考虑了。基本我们在挑选设备功率的时候,需要考虑五个因素,1、要根据日常的生产需要去选择相对产品的性能。例如要看加热的体积和相应面积;加热体积大…

    2022年6月23日
    45
  • http://oncenote.com/2015/09/16/Security-2-HTTPS2/ (轉載)

    http://oncenote.com/2015/09/16/Security-2-HTTPS2/ (轉載)上一篇《iOS安全系列之一:HTTPS》被CocoaChina转载,还顺便上了下头条:打造安全的App!iOS安全系列之HTTPS,但那篇文章只是介绍了比较偏应用的初级知识,对于想要深入了解HTT

    2022年7月2日
    27
  • 浅谈增强学习

    浅谈增强学习这篇文章就是浅谈一下机器学习领域下的增强学习。为什么博文的题目为浅谈,因为笔者对机器学习的认知比较浅。我分享一个Q算法的C++代码,该例子体现了如何用Q算法学习迷宫寻路。读者可参考我上一篇转载博文给出的例子进行学习。

    2025年7月12日
    6
  • dataguard安装

    dataguard安装1 1 nbsp nbsp nbsp nbsp Dataguard 实施前准备 nbsp nbsp nbsp nbsp Oracle 安装分包括 2 块 安装 DB nbsp 软件和升级 如果是 10g 的话 可以先将 DB 升级到 10 2 0 5 升级的原因是为了避免某些 bug 先安装软件 升级 升级完在用 DBCA nbsp 创建实例 这样比安装 DB nbsp 和创建实例之后升级要简单点 nbsp nbsp nbsp nbsp 1 redo nbsp 文件默认是 50M 改成 100M nbsp nbsp nbsp nbsp 2 每个 redogroup 里改成 2 个 nbsp

    2026年3月19日
    2
  • PageHelp和PageInfo的使用

    PageHelp和PageInfo的使用当前页 privateintpa 每页的数量 privateintpa 当前页的数量 privateintsi 由于 startRow 和 endRow 不常用 这里说个具体的用法 可以在页面中 显示 startRow 到 endRow 共 size 条数据 当前页面第一个元素在数据库中的行号 privateintst

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号