就是说用curl 抓取网页, 被抓取网页的那边显示的ip,
是空间的ip 还是用户的ip?

解决方案 »

  1.   

    空间的ip没必要显示出来吧。应该是客户端的ip
      

  2.   

    空间的IP。也即抓取脚本所在服务器的IP.
      

  3.   


    确实是curl所在服务器的IP
      

  4.   

    答案给你了,想用什么IP就在什么地方Curl. 
    当然 curl 也是可以用代理的不是?:-)
      

  5.   


    用curl 过分频繁会被认为是采集 
    我想防止这种情况 如何解决 能借用 用户ip ? 或伪造看看这段代码 行不?
    <?phpfunction curl($destURL, $paramStr='',$flag='get',$ip='10.57.22.151',$fromurl='http://www.baidu.com'){
      if(!extension_loaded('curl')) exit('系统没有扩展php_curl.dll,出错了。');
    $curl = curl_init(); 
    if($flag=='post'){//post传递
    curl_setopt($curl, CURLOPT_POST, 1);               
    curl_setopt($curl, CURLOPT_POSTFIELDS, $paramStr); 
    }
    curl_setopt($curl, CURLOPT_URL, $destURL);//地址
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.$ip, 'CLIENT-IP:'.$ip));  //构造IP  
    curl_setopt($curl, CURLOPT_REFERER, $fromurl); 
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);#10s超时时间
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $str = curl_exec($curl);
    curl_close($curl);
    return $str;
    }
    //安徽合肥的IP地址段 60.166.0.0 60.166.16.158
    for($i=0;$i<=100;$i++){
    $getip='60.166.'.rand(0,16).'.'.rand(0,158) ;
    echo curl('网站服务器请求地址','参数','post',$getip,'模拟网站来路');
    }
    ?>
      

  6.   

    要解决你的问题就是在能变换IP的机子上(ADSL)拨号 执行采集. 要么就是代理什么构造IP,自己实践一下不就出真知了?
      

  7.   

    就算通过代理服务器,它的ip不也是固定的吗? 我想做到每次ip不同,能否用代理服务器