本文實例講述了php使用CURL偽造IP和來源的方法。分享給大家供大家參考。具體分析如下:
偽造IP來源對於php來說是很簡單的一件事情,我們只要利用了php的curl即可實現偽造IP來源的功能,IP地址你可以隨便寫.
index.php實例代碼如下:
復制代碼 代碼如下:$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/curl.php");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8'));//IP
curl_setopt($ch, CURLOPT_REFERER, "http://www.jb51.net/ "); //來路
curl_setopt($ch, CURLOPT_HEADER, 1);
$out = curl_exec($ch);
curl_close($ch);
curl.php代碼如下:
復制代碼 代碼如下:function getClientIp() {
if (!emptyempty($_SERVER["HTTP_CLIENT_IP"]))
$ip = $_SERVER["HTTP_CLIENT_IP"];
else if (!emptyempty($_SERVER["HTTP_X_FORWARDED_FOR"]))
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if (!emptyempty($_SERVER["REMOTE_ADDR"]))
$ip = $_SERVER["REMOTE_ADDR"];
else
$ip = "err";
return $ip;
}
echo "IP: " . getClientIp() . "";
echo "referer: " . $_SERVER["HTTP_REFERER"];
用index.php 請求 curl.php,輸出結果:
IP:8.8.8.8 referer:http://www.jb51.net
偽造成功,這是不是給采集的朋友提供了很好的換IP的方案,當然防被刷的朋友也要注意了.
補充:
PHP中的CURL函數庫(Client URL Library Function)如下:
curl_close — 關閉一個curl會話
curl_copy_handle — 拷貝一個curl連接資源的所有內容和參數
curl_errno — 返回一個包含當前會話錯誤信息的數字編號
curl_error — 返回一個包含當前會話錯誤信息的字符串
curl_exec — 執行一個curl會話
curl_getinfo — 獲取一個curl連接資源句柄的信息
curl_init — 初始化一個curl會話
curl_multi_add_handle — 向curl批處理會話中添加單獨的curl句柄資源
curl_multi_close — 關閉一個批處理句柄資源
curl_multi_exec — 解析一個curl批處理句柄
curl_multi_getcontent — 返回獲取的輸出的文本流
curl_multi_info_read — 獲取當前解析的curl的相關傳輸信息
curl_multi_init — 初始化一個curl批處理句柄資源
curl_multi_remove_handle — 移除curl批處理句柄資源中的某個句柄資源
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array — 以數組的形式為一個curl設置會話參數
curl_setopt — 為一個curl設置會話參數
curl_version — 獲取curl相關的版本信息
curl_init()函數的作用初始化一個curl會話,curl_init()函數唯一的一個參數是可選的,表示一個url地址.
curl_exec()函數的作用是執行一個curl會話,唯一的參數是curl_init()函數返回的句柄.
curl_close()函數的作用是關閉一個curl會話,唯一的參數是curl_init()函數返回的句柄.
希望本文所述對大家的php程序設計有所幫助。