您好,欢迎访问一九零五行业门户网

PHP实现的限制IP投票程序IP来源分析,ip投票_PHP教程

php实现的限制ip投票程序ip来源分析,ip投票本文实例分析了php实现的限制ip投票程序。分享给大家供大家参考,具体如下:
接到一个投票活动的需求,需要做ip限制,每个ip限制一定的投票机会。我在搜索引擎上搜索了关键词:php客户端ip ,结果基本上都是以下内容:
if(getenv('http_client_ip') && strcasecmp(getenv('http_client_ip'), 'unknown')) { $onlineip = getenv('http_client_ip');} elseif(getenv('http_x_forwarded_for') && strcasecmp(getenv('http_x_forwarded_for'), 'unknown')) { $onlineip = getenv('http_x_forwarded_for');} elseif(getenv('remote_addr') && strcasecmp(getenv('remote_addr'), 'unknown')) { $onlineip = getenv('remote_addr');} elseif(isset($_server['remote_addr']) && $_server['remote_addr'] && strcasecmp($_server['remote_addr'], 'unknown')) { $onlineip = $_server['remote_addr'];}
这段代码在使用广泛的 《discuz》论坛软件,以及众多开放源代码的php软件里都会有使用到,大致思路是获取最终的客户端ip地址(能获得使用代理访问的用户的ip地址)。
由于很多成熟的程序都使用了这段代码获取客户端ip地址,所以我也就放心的运用在了程序里,好在后来有同事提醒,发现这段代码不能用在限制ip的投票程序里,因为 http_x_forwarded_for这个是可以伪造的,只要在请求头里增加 x-forwarded-for 。在服务器端的 $_server[‘http_x_forwarded_for'] 接收到的就是这个请求头的内容。
下面我用程序说明一下:
http://localhost/i.php 内容是通过上面的代码获取ip地址,并打印出来。
编写构造请求的代吗,请求这个url:其中在请求头里增加了x-forwarded-for这个参数:
$head = array();$head[] = 'get /i.php http/1.1';$head[] = 'host: localhost';$head[] = 'x-forwarded-for: 255.255.255.255' ;$head[] = 'connection: close' ;$head = join(rn,$head) ;$head .= rnrn;$fp = fsockopen('localhost', 80);fwrite($fp, $head);$response = array() ;while($buff = fread($fp, 4096)){ $response[] = $buff;}print join('',$response) ;
执行这段代码,可以得知,服务器端(localhost/i.php) 打印了 255.255.255.255 。
说明了这种获取客户端ip的方法在限制ip的投票活动里是不可取的,客户端的ip地址可用伪造。而直接使用  $_server['remote_addr'] 虽然获取到的不是用户的最终ip地址,但是限制的功能是直接有效的达到了。
当然,也不能说那段代码是错误的。在一些对ip不做限制的需求里,应该使用,比如,在一些有很多地域性子网站的网站,通过用户访问的ip,直接跳转到该用户所在区域的子网站等。
更多关于php相关内容感兴趣的读者可查看本站专题:《php curl用法总结》、《php socket用法总结》、《php网络编程技巧总结》、《php基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
http://www.bkjia.com/phpjc/1125235.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1125235.htmltecharticlephp实现的限制ip投票程序ip来源分析,ip投票 本文实例分析了php实现的限制ip投票程序。分享给大家供大家参考,具体如下: 接到一个投票活...
其它类似信息

推荐信息