当前位置: 首页 > article >正文 python获取本地电脑的ip和mac地址 article 2024/11/23 6:16:42 获取 IP 地址 在 Python 中,可以使用socket模块来获取本地 IP 地址。以下是一个简单的示例代码: 登录后复制 import socket def get_local_ip(): try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) ip = s.getsockname()[0] s.close() return ip except Exception as e: print(f"获取IP地址出错: {e}") return None 1.2.3.4.5.6.7.8.9.10.11.12. 解释: 首先创建了一个UDP套接字(socket.socket(socket.AF_INET, socket.SOCK_DGRAM))。这里AF_INET表示使用 IPv4 协议族,SOCK_DGRAM表示UDP套接字类型。然后通过连接到一个外部的 IP 地址(这里使用的是谷歌的DNS服务器8.8.8.8的80端口),这个连接操作实际上是为了获取本地分配的 IP 地址。因为当你连接到外部服务器时,操作系统会将本地合适的 IP 地址绑定到这个套接字上。接着使用getsockname()[0]来获取套接字的本地 IP 地址。最后关闭套接字并返回 IP 地址。如果出现异常,会打印错误信息并返回None。 获取 MAC 地址 获取 MAC 地址相对复杂一些,因为不同的操作系统获取方式有所不同。在 Windows 和 Linux 系统下可以使用uuid模块结合系统命令来获取。以下是一个跨平台(Windows 和 Linux)获取 MAC 地址的示例: 登录后复制 import uuid import platform import subprocess def get_mac_address(): if platform.system() == "Windows": try: # 在Windows下使用命令获取MAC地址 output = subprocess.check_output("ipconfig /all").decode("utf-8") for line in output.splitlines(): if "物理地址" in line: mac_address = line.split(":")[-1].strip() return mac_address except subprocess.CalledProcessError as e: print(f"获取MAC地址出错: {e}") return None elif platform.system() == "Linux": try: mac_address = uuid.getnode() mac_address = ':'.join(("%012X" % mac_address)[i:i + 2] for i in range(0, 12, 2)) return mac_address except Exception as e: print(f"获取MAC地址出错: {e}") return None else: print("不支持的操作系统") return None 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27. 解释: 首先通过platform.system()来判断操作系统类型。在 Windows 下: 使用subprocess.check_output("ipconfig /all")来执行ipconfig /all命令,这个命令会返回网络配置的详细信息。将输出的结果使用utf - 8编码进行解码后,逐行检查。当找到包含 “物理地址”(这是 Windows 下 MAC 地址对应的中文名称)的行时,通过分割字符串获取 MAC 地址部分,并去除空格后返回。如果执行命令出错,会打印错误信息并返回None。 在 Linux 下: 使用uuid.getnode()来获取网络接口的 MAC 地址,这个函数返回的是一个整数表示的 MAC 地址。然后通过将这个整数转换为十六进制字符串,并按照一定的格式(每两位用:分隔)来得到常见的 MAC 地址格式并返回。如果出现异常,会打印错误信息并返回None。 如果是其他不支持的操作系统,会打印提示信息并返回None。 你可以使用以下方式调用这些函数: 登录后复制 if __name__ == "__main__": local_ip = get_local_ip() mac_address = get_mac_address() print(f"本地IP地址: {local_ip}") print(f"MAC地址: {mac_address}") 1.2.3.4.5. 获取本地电脑的 MAC 地址的 Python 代码 如何在 Python 中实现网络通信? 除了 Python,还有哪些语言可以获取本地电脑的 IP 和 MAC 地址? 查看全文 http://www.kler.cn/a/405361.html 相关文章: java 并发编程 (1)java中如何实现并发编程 Python Turtle召唤童年:喜羊羊与灰太狼之懒羊羊绘画 计算机网络(12)介质访问控制 【ArcGIS微课1000例】0132:从多个GIS视角认识与攀登珠穆朗玛峰 CSS实现实现当文本内容过长时,中间显示省略号...,两端正常展示 输出比较简介 Python后端入门 微信小程序技术架构图 力扣--LCR 141.训练计划III 二十:HTML Form表单提交时的协议格式 银河麒麟v10 x86架构二进制方式kubeadm+docker+cri-docker搭建k8s集群(证书有效期100年) —— 筑梦之路 C++ 中的智能指针 设计模式之 桥接模式 HarmonyOS中UIAbility和windowStage的区别 【企业级分布式系统】Ceph集群 Hadoop 系列 MapReduce:Map、Shuffle、Reduce uniapp接入高德地图 【更新】中国省级产业集聚测算数据及协调集聚指数数据(2000-2022年) Python+Selenium+Pytest+Allure+ Jenkins webUI自动化框架 七次课掌握 Photoshop:绘画与修饰 librdns一个开源DNS解析库 垂起固定翼无人机搭载高清三光(4K可见+红外+激光测距)吊舱图像采集技术详解 FileProvider高版本使用,跨进程传输文件 主IP地址与从IP地址:深入解析与应用探讨 锂电池学习笔记(一) 初识锂电池 浅谈Python库之lxml
获取 IP 地址 在 Python 中,可以使用socket模块来获取本地 IP 地址。以下是一个简单的示例代码: 登录后复制 import socket def get_local_ip(): try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(("8.8.8.8", 80)) ip = s.getsockname()[0] s.close() return ip except Exception as e: print(f"获取IP地址出错: {e}") return None 1.2.3.4.5.6.7.8.9.10.11.12. 解释: 首先创建了一个UDP套接字(socket.socket(socket.AF_INET, socket.SOCK_DGRAM))。这里AF_INET表示使用 IPv4 协议族,SOCK_DGRAM表示UDP套接字类型。然后通过连接到一个外部的 IP 地址(这里使用的是谷歌的DNS服务器8.8.8.8的80端口),这个连接操作实际上是为了获取本地分配的 IP 地址。因为当你连接到外部服务器时,操作系统会将本地合适的 IP 地址绑定到这个套接字上。接着使用getsockname()[0]来获取套接字的本地 IP 地址。最后关闭套接字并返回 IP 地址。如果出现异常,会打印错误信息并返回None。 获取 MAC 地址 获取 MAC 地址相对复杂一些,因为不同的操作系统获取方式有所不同。在 Windows 和 Linux 系统下可以使用uuid模块结合系统命令来获取。以下是一个跨平台(Windows 和 Linux)获取 MAC 地址的示例: 登录后复制 import uuid import platform import subprocess def get_mac_address(): if platform.system() == "Windows": try: # 在Windows下使用命令获取MAC地址 output = subprocess.check_output("ipconfig /all").decode("utf-8") for line in output.splitlines(): if "物理地址" in line: mac_address = line.split(":")[-1].strip() return mac_address except subprocess.CalledProcessError as e: print(f"获取MAC地址出错: {e}") return None elif platform.system() == "Linux": try: mac_address = uuid.getnode() mac_address = ':'.join(("%012X" % mac_address)[i:i + 2] for i in range(0, 12, 2)) return mac_address except Exception as e: print(f"获取MAC地址出错: {e}") return None else: print("不支持的操作系统") return None 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27. 解释: 首先通过platform.system()来判断操作系统类型。在 Windows 下: 使用subprocess.check_output("ipconfig /all")来执行ipconfig /all命令,这个命令会返回网络配置的详细信息。将输出的结果使用utf - 8编码进行解码后,逐行检查。当找到包含 “物理地址”(这是 Windows 下 MAC 地址对应的中文名称)的行时,通过分割字符串获取 MAC 地址部分,并去除空格后返回。如果执行命令出错,会打印错误信息并返回None。 在 Linux 下: 使用uuid.getnode()来获取网络接口的 MAC 地址,这个函数返回的是一个整数表示的 MAC 地址。然后通过将这个整数转换为十六进制字符串,并按照一定的格式(每两位用:分隔)来得到常见的 MAC 地址格式并返回。如果出现异常,会打印错误信息并返回None。 如果是其他不支持的操作系统,会打印提示信息并返回None。 你可以使用以下方式调用这些函数: 登录后复制 if __name__ == "__main__": local_ip = get_local_ip() mac_address = get_mac_address() print(f"本地IP地址: {local_ip}") print(f"MAC地址: {mac_address}") 1.2.3.4.5. 获取本地电脑的 MAC 地址的 Python 代码 如何在 Python 中实现网络通信? 除了 Python,还有哪些语言可以获取本地电脑的 IP 和 MAC 地址? 查看全文 http://www.kler.cn/a/405361.html 相关文章: java 并发编程 (1)java中如何实现并发编程 Python Turtle召唤童年:喜羊羊与灰太狼之懒羊羊绘画 计算机网络(12)介质访问控制 【ArcGIS微课1000例】0132:从多个GIS视角认识与攀登珠穆朗玛峰 CSS实现实现当文本内容过长时,中间显示省略号...,两端正常展示 输出比较简介 Python后端入门 微信小程序技术架构图 力扣--LCR 141.训练计划III 二十:HTML Form表单提交时的协议格式 银河麒麟v10 x86架构二进制方式kubeadm+docker+cri-docker搭建k8s集群(证书有效期100年) —— 筑梦之路 C++ 中的智能指针 设计模式之 桥接模式 HarmonyOS中UIAbility和windowStage的区别 【企业级分布式系统】Ceph集群 Hadoop 系列 MapReduce:Map、Shuffle、Reduce uniapp接入高德地图 【更新】中国省级产业集聚测算数据及协调集聚指数数据(2000-2022年) Python+Selenium+Pytest+Allure+ Jenkins webUI自动化框架 七次课掌握 Photoshop:绘画与修饰 librdns一个开源DNS解析库 垂起固定翼无人机搭载高清三光(4K可见+红外+激光测距)吊舱图像采集技术详解 FileProvider高版本使用,跨进程传输文件 主IP地址与从IP地址:深入解析与应用探讨 锂电池学习笔记(一) 初识锂电池 浅谈Python库之lxml