Discuz教程网

php curl 对IP与来源地址的伪造

[复制链接]
authicon dly 发表于 2012-2-15 22:34:49 | 显示全部楼层 |阅读模式
curl的强大也还真的不是吹出来的哦!
facebook,msn,hotmail.yahoo(因为工作需要)这些都模拟进去过
原本以为IP是不能模拟的,来源地址伪造还听说过
说这也搞笑,自己都用了curl这长时间,竞然都不了解这个哦
不扯远了
正题…

curl发出请求的文件fake_ip.php:
  1. <?php$ch=curl_init(); $url="http://localhost/target_ip.php"; $header=array('CLIENT-IP:58.68.44.61','X-FORWARDED-FOR:58.68.44.61',); curl_setopt($ch, CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_HTTPHEADER,$header); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); $page_content=curl_exec($ch); curl_close($ch); echo$page_content; ?>
复制代码
请求的目标文件target_ip.php:
  1. <?php echo getenv('HTTP_CLIENT_IP');
  2. echo getenv('HTTP_X_FORWARDED_FOR');
  3. echo getenv('REMOTE_ADDR');?>
复制代码

目标文件target_ip里面的IP打印顺序是目前很多开源系统的IP获取顺序
访问fake_ip.php,看到结果:
58.68.44.61
58.68.44.61
127.0.0.1
也就是说只有REMOTE_ADDR的值没有被伪造,在网上找了找资料这里的REMOTE_ADDR通过PHP是改不了的,如果哪位能改,请赐教.
如果非得让REMOTE_ADDR改变,那就只能用代理了,curl支持代理,用上代理后REMOTE_ADDR的值就是你的代理IP值了.
小小的总结一下:
伪造的IP,最大程度上的识别请用REMOTE_ADDR来获取客户端IP
这里说的是最大程序上的,如果伪造者拥有很多代理IP,那就没话说了 附加说明: 模拟ip只是其中必备条件之一,还需要一下几点:
                1.模拟ip
                2.模拟header

                3.模拟cookie
                总之模拟浏览器就对了  



上一篇:关于HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR,REMOTE_ADDR 伪造IP问题
下一篇:curl伪造IP和来路
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 14:22

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表