這篇文章主要介紹了PHP中使用curl偽造IP的簡單方法,作者也提到了相關(guān)的一些缺陷,需要的朋友可以參考下
curl簡介:
curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。它支持很多協(xié)議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支持HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, HTTP上傳, 代理服務(wù)器, cookies, 用戶名/密碼認證, 下載文件斷點續(xù)傳等等,功能十分強大。
PHP中常用curl實現(xiàn)的功能:
1、實現(xiàn)遠程獲取和采集內(nèi)容
2、實現(xiàn)PHP 網(wǎng)頁版的FTP上傳下載
3、實現(xiàn)模擬登陸
4、實現(xiàn)接口對接(API),數(shù)據(jù)傳輸?shù)?/p>
5、實現(xiàn)模擬Cookie等
PHP使用CURL功能
默認情況下PHP是不支持CURL功能的,需要在PHP.ini中開啟該功能
- ; extension= php_curl.dll//首先去除前面的;分號,并重啟Apache/IIS
使用curl偽造IP
我找到的IP拷貝到txt文件里,然后sed和awk處理了一下,分享一下我的awk處理腳本:
- #!/bin/awk -f
- #運行前
- BEGIN {
- FS = " ";
- count = 0;
- }
- #運行中
- {
- iparr[count ++] = $0;
- }
- #運行后
- END {
- printf("<?php/n");
- printf("$iparr = array(/n");
- for (i = 0; i < count; i ++) {
- printf("'%s' => '%s',/n", iparr[i], iparr[i]);
- }
- printf(");/n");
- }
CURL使用
- <?php
- 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);
- }
缺陷
很多服務(wù)器端一般都采用了$_SERVER['REMOTE_ADDR']來獲取客戶端的真實ip,這是在傳輸層就已經(jīng)決定的地址,無法通過CURL進行修改,好吧,貌似我也沒幫朋友做成功這件事情,不過還是記錄一下
新聞熱點
疑難解答