zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    桟错误分析方法
    gstreamer调试命令
    sqlite的事务和锁,很透彻的讲解 【转】
    严重: Exception starting filter struts2 java.lang.NullPointerException (转载)
    eclipse 快捷键
    POJ 1099 Square Ice
    HDU 1013 Digital Roots
    HDU 1087 Super Jumping! Jumping! Jumping!(动态规划)
    HDU 1159 Common Subsequence
    HDU 1069 Monkey and Banana(动态规划)
  • 原文地址:https://www.cnblogs.com/godrain/p/4401524.html
Copyright © 2011-2022 走看看