在许多Web开发框架中,都可以通过获取HTTP请求头中的X-Forwarded-For或者X-Real-IP字段来获取原始请求者的IP地址。以下是一些常见的Web开发框架的代码示例:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def get_ip():
# 获取原始请求者的IP地址
ip = request.headers.get('X-Forwarded-For', request.remote_addr)
return f"Your IP address is: {ip}"
if __name__ == '__main__':
app.run()
const express = require('express');
const app = express();
app.get('/', (req, res) => {
// 获取原始请求者的IP地址
const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
res.send(`Your IP address is: ${ip}`);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("/")]
public class HomeController : ControllerBase
{
[HttpGet]
public string Get()
{
// 获取原始请求者的IP地址
var ip = HttpContext.Request.Headers["X-Forwarded-For"].FirstOrDefault() ?? HttpContext.Connection.RemoteIpAddress.ToString();
return $"Your IP address is: {ip}";
}
}
请注意,使用代理服务器或负载均衡器时,这些代码示例中的X-Forwarded-For或X-Real-IP字段可能会被中间服务器篡改。要确保获取到的IP地址是原始请求者的IP地址,需要根据具体的部署环境进行相应的配置。