python获取本机IP、mac地址、计算机名

本文详细介绍了在Python中如何获取本地IP地址和MAC地址,包括使用socket库和特定于Linux的方法。重点突出Python环境下的操作,提供实用的代码示例。
部署运行你感兴趣的模型镜像
在python中获取ip地址和在php中有很大不同,在php中往往比较简单。那再python中怎么做呢?我们先来看一下python 获得本机MAC地址:import...

在python中获取ip地址和在php中有很大不同,在php中往往比较简单。那再python中怎么做呢?

我们先来看一下python 获得本机MAC地址:

1
2
3
4
import uuid
def get_mac_address(): 
    mac=uuid.UUID(int = uuid.getnode()).hex[-12:] 
    return ":".join([mac[e:e+2for in range(0,11,2)])


下面再来看一下python获取IP的方法:使用socket

1
2
3
4
5
6
7
import socket
#获取本机电脑名
myname = socket.getfqdn(socket.gethostname(  ))
#获取本机ip
myaddr = socket.gethostbyname(myname)
print myname
print myaddr

结果为:

mypc  #电脑名

192.168.1.111 #ip地址

但是注意这里获取的IP是内网IP


方法三:在linux下可用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import socket
import fcntl
import struct
  
def get_ip_address(ifname):
    = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])
  
>>> get_ip_address('lo')
'127.0.0.1'
  
>>> get_ip_address('eth0')
'38.113.228.130'

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 使用Python获取本地机器的IPMAC地址 #### 获取本机IP地址 为了获得本机IPv4地址,可以通过`socket`库来实现。下面是一段用于取得当前设备IP地址的小型函数: ```python import socket def get_ip_address(): hostname = socket.gethostname() ip_address = socket.gethostbyname(hostname) return ip_address ``` 此方法利用了`gethostname()`来得到计算机称,并进一步调用`gethostbyname()`转换成对应的IP地址[^5]。 对于更全面的支持(包括处理多网络接口的情况),可以采用如下改进版代码片段: ```python import netifaces as ni def get_all_ipv4_addresses(): interfaces = ni.interfaces() ipv4_addrs = [] for interface in interfaces: try: addr = ni.ifaddresses(interface)[ni.AF_INET][0]['addr'] if addr != '127.0.0.1': # 排除回环地址 ipv4_addrs.append(addr) except KeyError: pass return ipv4_addrs ``` 这段代码依赖于第三方模块`netifaces`,它能够遍历所有的网络接口并提取有效的IPv4地址列表[^1]。 #### 获取MAC地址 针对MAC地址的检索,则有多种途径可选。这里提供一种基于标准库的方式: ```python import uuid def get_mac_address(): mac_num = hex(uuid.getnode()).replace('0x', '').upper() mac_str = '-'.join(mac_num[i:i+2] for i in range(0, 12, 2)) return mac_str ``` 上述代码通过UUID机制间接访问硬件信息,最终返回格式化的MAC字符串表示形式[^3]。 另一种更为直观的方法适用于Windows平台下的命令行工具执行环境;而对于Linux/Unix系统而言,也可以考虑读取特定路径下保存的相关文件内容以直接获取MAC地址[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值