用pyhton获取ip地址
时间: 2024-09-25 13:15:38 浏览: 31
在Python中,你可以使用内置模块`socket`来获取本地计算机的IP地址。以下是获取内网IP和外网IP的一个简单示例:
```python
import socket
def get_ip_address():
# 获取内网IP地址
def get_private_ip():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
except Exception:
ip = '127.0.0.1' # 如果连接失败,默认内网IP
finally:
s.close()
return ip
# 获取外网IP地址(如果支持)
try:
public_ip = socket.gethostbyname(socket.gethostname())
except socket.gaierror:
public_ip = None # 如果无法访问网络,则返回None
private_ip = get_private_ip()
if public_ip is not None and private_ip != public_ip:
print(f"内网IP: {private_ip}, 外网IP: {public_ip}")
else:
print(f"IP地址: {private_ip} (可能是内网IP)")
get_ip_address()
```
运行这个脚本,它会首先尝试获取外网IP,如果网络不可达则显示内网IP。注意,对于某些有防火墙的企业环境,外网IP可能需要特定设置才能获取。
阅读全文