PHP 使用CURL庫IP欺騙,隱藏真實客戶端IP


首先搭建環境,建立個ip.php.

代碼如下:

<?

error_reporting(0);

function GetIP(){
if($_SERVER['HTTP_CLIENT_IP']){
   $onlineip=$_SERVER['HTTP_CLIENT_IP'];
   }elseif($_SERVER['HTTP_X_FORWARDED_FOR']){
   $onlineip=$_SERVER['HTTP_X_FORWARDED_FOR'];
   }else{
   $onlineip=$_SERVER['REMOTE_ADDR'];
   }
return $onlineip;
}

?>

 

再建立個index.php

代碼如下:

 1 <?php
 2 
 3 error_reporting(0);
 4 
 5 require 'ip.php';
 6    
 7 echo '<hr>'.'Your IP is '.GetIP().'<br>'.'<hr>';
 8 
 9 /*echo 'REMOTE_ADDR is '.$_SERVER['REMOTE_ADDR'].'<br>';
10 echo 'HTTP_CLIENT_IP is  '.$_SERVER['HTTP_CLIENT_IP'].'<br>';
11 echo 'HTTP_X_FORWARDED_FOR is '.$_SERVER['HTTP_X_FORWARDED_FOR'].'<br>';
12 echo 'HTTP_VIA is '.$_SERVER['HTTP_VIA'];*/
13 
14 ?>

 

測試:

IP顯示正確,客戶端真實IP是218.241.179.50

去掉index.php里面的注釋,使用代理觀察

可以看到REMOTE_ADDR方法抓到了代理IP

HTTP_XFORWARDED_FOR還是抓到了客戶端的真實IP

接下來編輯curl_proxy.php,示例代碼:

<?php

error_reporting(0);

function curl_string ($url,$user_agent,$proxy){
$ch = curl_init();
curl_setopt ($ch, CURLOPT_PROXY, $proxy);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt ($ch, CURLOPT_COOKIEJAR, "d:\cookies.txt");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_HTTPHEADER, array('CLIENT-IP:125.210.188.36', 'X-FORWARDED-FOR:125.210.188.36'));  //此處可以改為任意假IP
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);

$result = curl_exec ($ch);
curl_close($ch);
return $result;
}
$url_page = "http://s4nd.no-ip.org/test/index.php";
$user_agent = "Mozilla/4.0";
$proxy = "http://125.210.188.36:80";    //此處為代理服務器IP和PORT

$string = curl_string($url_page,$user_agent,$proxy);

echo $string;

?>

訪問curl_proxy.php

122.66.*.*是運行腳本服務器的IP,這樣就實現了隱藏客戶端真實IP的目的。

有的代理服務器會被HTTP_VIA方法偵測到使用了代理服務器,實際上透明代理和高級匿名代理有很大區別。

原文:http://s4nds.diandian.com/post/2012-03-24/17240144

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM