python实现获取本地ip
时间: 2023-10-06 21:09:26 浏览: 71
可以使用socket模块来获取本地IP地址,具体代码如下:
```python
import socket
# 获取本地IP地址
def get_local_ip():
try:
# 创建UDP套接字
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 连接百度DNS
s.connect(('114.114.114.114', 80))
# 获取本地IP地址
ip = s.getsockname()[0]
except:
ip = '127.0.0.1'
finally:
s.close()
return ip
# 测试代码
if __name__ == '__main__':
print(get_local_ip())
```
该代码通过创建UDP套接字并连接到百度DNS服务器来获取本地IP地址,如果无法连接则返回默认地址127.0.0.1。
相关问题
python获取客户端ip,Python-获取本地IP
获取客户端IP地址可以通过访问请求的header中的"X-Forwarded-For"字段来实现,如果该字段不存在,则获取请求的remote_addr属性。
示例代码:
```python
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
ip = request.headers.get('X-Forwarded-For', request.remote_addr)
return 'Your IP address is {}'.format(ip)
if __name__ == '__main__':
app.run()
```
获取本地IP地址可以通过socket模块来实现,示例代码如下:
```python
import socket
def get_local_ip():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
s.close()
return ip
print(get_local_ip())
```
python 获取本地ip
在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,可以传入相应的接口名称。
阅读全文