在Python请求中添加Http_X_Forwarded_For头部

3 投票
1 回答
6621 浏览
提问于 2025-04-17 19:35

我在一个网络服务器上有一段小的PHP代码。这段PHP代码的作用是记录访问者的IP地址,具体是通过这一行代码来实现的:

    $ip = !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
echo 'Your IP is:'.$ip

我想用Python写一段代码,利用HTTP_X_FORWARDED_FOR这个头信息,来让网络服务器记录一个不同于真实IP的地址。我已经写好了这段代码:

import urllib2,cookielib

cj = cookielib.CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('HTTP_X_FORWARDED_FOR','1.2.3.4'),]
resp=opener.open('http://example.com/logIP.php')

但是为什么PHP代码没有记录我在Python代码中设置的1.2.3.4这个IP呢?我该怎么做才能让这个网络应用显示这个“假”的IP呢?

1 个回答

6

在使用urllib(Python)时,头信息应该是 X-Forwarded-For。然后,你的网页服务器会把这个信息放到一个叫 HTTP_X_FORWARDED_FOR 的环境变量里,你可以通过 $_SERVER 来读取这个变量。

opener.addheaders = [('X-Forwarded-For','1.2.3.4'),]

撰写回答