程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php使用CURL偽造IP和來源實例詳解

php使用CURL偽造IP和來源實例詳解

編輯:PHP綜合

本文實例講述了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程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved