在Python中获取访问者的IP地址通常有以下几种方法:
1. 使用Flask框架获取访问者的IP地址:
```python
from flask import Flask, request
app = Flask(__name__)
@app.route('/get_ip')
def get_ip():
return jsonify({'ip': request.remote_addr}), 200
2. 使用socket库获取本机IP地址:
```python
import socket
def get_ip_address():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip_address = s.getsockname()
s.close()
return ip_address
except socket.error:
return '获取IP地址失败'
ip = get_ip_address()
print('本机IP地址为:', ip)
3. 使用requests库获取外网IP地址:
```python
import requests
def get_out_ip():
url = 'http://1212.ip138.com/ic.asp'
r = requests.get(url)
txt = r.text
ip = txt[txt.find('[') + 1 : txt.find(']')][1:]
return ip
print('外网IP地址为:', get_out_ip())
4. 获取本机所有IP地址:
```python
import socket
def get_host_ip():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()
s.close()
return ip
except socket.error:
return '获取IP地址失败'
print('本机IP地址为:', get_host_ip())
请注意,如果您的应用程序位于代理服务器后面,您可能需要使用`request.environ['REMOTE_ADDR']`来获取客户端的真实IP地址,因为`request.remote_addr`可能会显示代理服务器的IP地址。