当前位置:编程学习 > php >>

用PHP代码如何实现真实IP和代理IP

用PHP代码如何实现真实IP和代理IP

http://www.zxjcm.cn/blog/attachments/month_0907/y2009727202952.jpg

追问:太少了。。。能不能多发点。。。

答案:帮你编一段测试代码,楼主试试吧!

<?PHP

if ($_SERVER['HTTP_X_FORWARDED_FOR'] == "")
{
echo '您的IP地址是:'.$_SERVER['HTTP_X_FORWARDED_FOR']."<br />";
echo '没有使用代理。<br />'
}
else
{
echo '您的IP地址是:'.$_SERVER['HTTP_X_FORWARDED_FOR']."<br />";
echo '代理的IP地址:'.$_SERVER['REMOTE_ADDR'].'<br />';
}

?>

这代码只能正确显示对方使用透明代理时的结果~
希望对你有帮助!
代理服务器分为透明代理和匿名代理
透明代理会将客户端的请求IP包含在HTTP头中,具体就是$_SERVER['HTTP_X_FORWARDED_FOR']中匿名代理将客户端的IP隐藏起来,IP信息只能在$_SERVER['REMOTE_ADDR']找咯
以下是网上的资料:

一、没有使用代理服务器的情况:

REMOTE_ADDR = 您的 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:Transparent Proxies

REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

三、使用普通匿名代理服务器的情况:Anonymous Proxies

REMOTE_ADDR = 最后一个代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

四、使用欺骗性代理服务器的情况:Distorting Proxies

REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 代理服务器 IP
HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)

REMOTE_ADDR = 代理服务器 IP
HTTP_VIA = 没数值或不显示
HTTP_X_FORWARDED_FOR = 没数值或不显示 ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。

我记得Http协议中好象描述了一种Http代理,如果是这种代理,那么当Http代理按照rfc2616协议把自己的信息填写到请求头中时,最终Http服务器是可以通过检索响应请求头的值来获得Http代理服务器信息的。

PHP我没学过,但应该有办法得到请求头值。

上一个:谁帮我解释下这段PHP函数
下一个:PHP调用其它站的数据(PHP小偷)

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,