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

第一篇文章,正好赶上了curl应用,之前也是做过curl的模拟登录

curl的强大也还真的不是吹出来的哦!

facebook,msn,hotmail.yahoo(因为工作需要)这些都模拟进去过

原本以为IP是不能模拟的,来源地址伪造还听说过

说这也搞笑,自己都用了curl这长时间,竞然都不了解这个哦

不扯远了

正题…

curl发出请求的文件fake_ip.php:

? View Code PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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:

? View Code PHP
1
2
3
4
5
<?php
echo getenv('HTTP_CLIENT_IP');
echo getenv('HTTP_X_FORWARDED_FOR');
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,那就没话说了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值