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

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

編輯:關於PHP編程
    這篇文章主要介紹了php使用CURL偽造IP和來源的方法,以實例形式詳細分析了CURL偽造IP和來源的原理與實現技巧,並補充說明了PHP中的CURL函數庫常用函數,需要的朋友可以參考下    

     

    本文實例講述了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