php curl 對IP與來源地址的僞造

第一篇文章,正好趕上了curl應用,之前也是做過curl的模擬登錄

curl的強大也還真的不是吹出來的哦!

facebook,msn,hotmail.yahoo(因爲工作需要)這些都模擬進去過

原本以爲IP是不能模擬的,來源地址僞造還聽說過

說這也搞笑,自己都用了curl這長時間,競然都不瞭解這個哦

不扯遠了

正題…

curl發出請求的文件fake_ip.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:

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,那就沒話說了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章