php curl伪造IP的示例代码

发布时间:2020-03-24编辑:脚本学堂
分享一例php代码,使用curl伪造IP地址访问,学习下curl的具体用法,感兴趣的朋友可以参考下,希望对你有所帮助。

本节内容:
CURL伪造ip访问。

原理分析:
1,整理一份ip库。
2,修改CURLOPT_HTTPHEADER字段,设置X-FORWARD-FOR和CLIENT-IP字段

一,整理IP库
测试链接:http://www.xxx.com/article/201201/16304.html
我把网址里的东西拷贝到txt文件里,然后sedlinuxjishu/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进行修改。
这点记录下,有好的办法再分享。