在python中的请求中添加Http_X_Forwarded_For标头

时间:2013-03-19 01:17:18

标签: php python http-headers

我在Web服务器中有一个小的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标头强制Web服务器记录其他IP而不是真实的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代码没有显示1.2.3.4如果我在puthon代码中设置它?我该怎么做才能强制网络应用程序向我显示“假”IP?

谢谢!

1 个答案:

答案 0 :(得分:4)

urllib(Python)端的标头应为X-Forwarded-For。然后,您的网络服务器会将其读入您从HTTP_X_FORWARDED_FOR读取的$_SERVER环境变量。

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