python 获取本地ip
时间: 2024-10-29 19:17:01 浏览: 22
在Python中,你可以使用内置模块`socket`或者第三方库如`netifaces`来获取本地IP地址。这里提供两种常见的方法:
1. 使用`socket`模块:
```python
import socket
def get_local_ip():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80)) # 这里通常选择Google DNS服务器
local_ip = s.getsockname()[0]
s.close()
return local_ip
except Exception as e:
print(f"获取本地IP失败: {e}")
return None
local_ip = get_local_ip()
```
2. 使用`netifaces`库(需要先安装,可以使用`pip install netifaces`命令):
```python
import netifaces as ni
def get_ip_address(interface='eth0'):
try:
addresses = ni.ifaddresses(interface)
if ni.AF_INET in addresses:
return addresses[ni.AF_INET][0]['addr']
else:
raise ValueError("No IPv4 address found on interface {}".format(interface))
except Exception as e:
print(f"获取本地IP失败: {e}")
return None
local_ip = get_ip_address()
```
这两种方法都会尝试获取第一个IPv4地址。如果你有多个网络连接并且想确定特定接口的IP,可以传入相应的接口名称。
阅读全文