本节内容:
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进行修改。
这点记录下,有好的办法再分享。