本节内容:
CURL伪造ip访问。
原理分析:
1,整理一份ip库。
2,修改CURLOPT_HTTPHEADER字段,设置X-FORWARD-FOR和CLIENT-IP字段
一,整理IP库
测试链接:http://www.xxx.com/article/201201/16304.html 
我把网址里的东西拷贝到txt文件里,然后sed和linuxjishu/13830.html target=_blank class=infotextkey>awk处理了一下。
awk处理脚本
 
复制代码 代码示例:
#!/bin/awk -f  
  
#运行前  
BEGIN {  
    FS = " ";  
    count = 0;  
}  
  
#运行中  
{  
    iparr[count ++] = $0;  
}  
  
#运行后  
END {  
    printf("<?phpn");  
    printf("$iparr = array(n");  
    for (i = 0; i < count; i ++) {  
        printf("'%s' => '%s',n", iparr[i], iparr[i]);  
    }  
    printf(");n");  
} 
二,CURL使用
 
复制代码 代码示例:
<?php
/**
* CURL伪造
IP地址访问
* by www.jb200.com
*/
require_once dirname(__FILE__) . "/iplib.php";  
  
$req_url = "test.com";  
  
foreach ($iparr as $forward => $cip) {  
      
    $ch = curl_init();  
      
    curl_setopt($ch, CURLOPT_URL, $req_url);  
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(  
            "X-FORWARDED-FOR:$forward",  
            "CLIENT-IP:$cip"  
    ));  
    curl_setopt($ch, CURLOPT_REFERER, 'http://blog.csdn.net/');  
    curl_setopt($ch, CURLOPT_HEADER, 1);  
      
    curl_exec($ch);  
      
    curl_close($ch);  
} 
不足:
很多服务器端一般都采用了$_SERVER['REMOTE_ADDR']来获取客户端的真实ip,这是在传输层就已经决定的地址,无法通过CURL进行修改。
这点记录下,有好的办法再分享。