curl php 模擬來源_php 使用curl模擬ip和來源進行訪問的實現方法

對于限制了ip和來源的網站,使用正常的訪問方式是無法訪問的。本文將介紹一種方法,使用php的curl類實現模擬ip和來源,訪問那些限制了ip和來源的網站。

1.設置頁面限制ip和來源訪問

server.php

$client_ip = getip();

$referer = getreferer();

$allow_ip = '192.168.1.100';

$allow_referer = '//www.jb51.net';

if($client_ip==$allow_ip && strpos($referer, $allow_referer)===0){

echo 'allow access';

}else{

echo 'deny access';

}

// 獲取訪問者ip

function getip(){

if(!empty($_SERVER['HTTP_CLIENT_IP'])){

$cip = $_SERVER['HTTP_CLIENT_IP'];

}elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){

$cip = $_SERVER['HTTP_X_FORWARDED_FOR'];

}elseif(!empty($_SERVER['REMOTE_ADDR'])){

$cip = $_SERVER['REMOTE_ADDR'];

}else{

$cip = '';

}

return $cip;

}

// 獲取訪問者來源

function getreferer(){

if(isset($_SERVER['HTTP_REFERER'])){

return $_SERVER['HTTP_REFERER'];

}

return '';

}

?>

2.使用curl正常訪問

function doCurl($url, $data=array(), $header=array(), $timeout=30){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

$response = curl_exec($ch);

if($error=curl_error($ch)){

die($error);

}

curl_close($ch);

return $response;

}

// 調用

$url = 'http://www.example.com/server.php';

$response = doCurl($url);

echo $response;

?>

返回 deny access

3.使用curl模擬ip和來源進行訪問

模擬來源

curl_setopt($ch, CURLOPT_REFERER, '來源');

模擬ip

curl_setopt($ch, CURLOPT_HTTPHEADER, array('CLIENT-IP: 模擬ip','X-FORWARDED-FOR: 模擬ip'));

完整代碼如下:

function doCurl($url, $data=array(), $header=array(), $referer='', $timeout=30){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);

// 模擬來源

curl_setopt($ch, CURLOPT_REFERER, $referer);

$response = curl_exec($ch);

if($error=curl_error($ch)){

die($error);

}

curl_close($ch);

return $response;

}

// 調用

$url = 'http://www.example.com/server.php';

$data = array();

// 設置IP

$header = array(

'CLIENT-IP: 192.168.1.100',

'X-FORWARDED-FOR: 192.168.1.100'

);

// 設置來源

$referer = '//www.jb51.net/';

$response = doCurl($url, $data, $header, $referer, 5);

echo $response;

?>

返回 allow access

以上這篇php 使用curl模擬ip和來源進行訪問的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持我們。

本文標題: php 使用curl模擬ip和來源進行訪問的實現方法

本文地址: http://www.cppcns.com/wangluo/php/189549.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/371842.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371842.shtml
英文地址,請注明出處:http://en.pswp.cn/news/371842.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

堆棧C語言實現

堆棧的抽象數據類型描述: 類型名稱: 堆棧(Stack)。數據對象集: 一個有 0 個或多個元素的又窮表。操作集: 長度為 max_size 的堆棧 S ∈ Stack, 堆棧元素 item ∈ ElementType。stack creatc_sta…

woocommerce 分類到菜單_Woocommerce商店顯示分類

我是wordpress的新手, 所以如果我輸入的語言錯誤, 請仍然為我提供幫助。我想使用woocommerce顯示具有可變產品的商店, 我希望商店鏈接登錄頁面顯示具有該類別特征圖像的商店類別。我當前的商店頁面顯示所有產品, 并分頁到其他產品頁面, 我找不到所有產品的模板。當我進入wp-adm…

JBoss BRMS 5.3 –添加了業務活動監視(BAM)報告

自從JBoss BRMS 5.3產品發布以來,添加了jBPM 5 BPM組件的最常見問題之一是業務活動監視(BAM)和報告功能。 本文將引導您完成添加過程,但是請注意,在撰寫本文時,這不是產品的受支持功能。 在JBoss BRMS 5.3上…

Zookeeper開源客戶端框架Curator簡介

Curator是Netflix開源的一套ZooKeeper客戶端框架. Netflix在使用ZooKeeper的過程中發現ZooKeeper自帶的客戶端太底層, 應用方在使用的時候需要自己處理很多事情, 于是在它的基礎上包裝了一下, 提供了一套更好用的客戶端框架. Netflix在用ZooKeeper的過程中遇到的問題, 我們也遇…

【樹形DP】 HDU 2196 Computer

題意:求節點間的最大距離 先DFS一次 記錄下 每一節點的子樹下的最大距離(DP[ u ] [ 0 ])和第二大距離(DP[ u ] [ 1 ]) 用DP[ v ] [ 2 ] 表示由v的父節點來的最大距離 再取DP[ u ] [ 0 ] 與 DP[ u ][ 2 ] 的最值 #inclu…

適當的Java堆大小的5個技巧

確定生產系統合適的Java堆大小不是一件容易的事。 在我的Java EE企業經驗中,我發現由于Java堆容量和調整不足而導致的多個性能問題。 本文將為您提供5個技巧,這些技巧可以幫助您確定當前或新生產環境的最佳Java堆大小。 這些技巧中的一些對于預防和解決j…

pythondocumentation是什么_怎樣閱讀Python官方文檔

如何閱讀官方Python文檔的初學者,因為他們沒有相關的經驗,學習語言通常是費時且勞動密集型和效果不是很好。下面簡要介紹如何閱讀官方文件。一旦你學會快速查詢官方文件,學習效率會提高很多文檔門戶。如何閱讀API文檔中內容標準庫,如何快速找到你想要的。第一種方法是先查找索引…

數據庫過大無法導入

導SQL數據庫結構數據時,如果數據是批量插入的話會報錯:2006 - MySQL server has gone away。 解決辦法:找到你的mysql目錄下的my.ini配置文件,加入以下代碼 max_allowed_packet500M wait_timeout288000 interactive_timeout 2880…

UVa 11475 - Extend to Palindrome

題目:給你一個字符串,在後面拼接一部分使得它變成回文串,使得串最短。輸出這個回文串。分析:KMP,dp。這裡利用KMP算法將串和它的轉置匹配,看結束時匹配的長度就可以。 因為串比較長。使用KMP比較合適&#…

構建Java Web應用程序時遵循MVC的三個步驟

步驟1 做 始終通過servlet / action bean處理URL(POST表單,單擊鏈接等),而不是通過JSP處理 為什么 ActionBeans(無論某些框架調用那些類),而servlet很少是控制器 用于處理用戶輸入。 JSP是專用于…

曝光原理_泰國精戈咖啡效果反饋 作用原理曝光

我的男人才三十五六,兩個人就開始分開睡了,自從咱們在一起以來,咱們的感情一向很好,這是十分調和的。但隨著年紀的添加,我逐漸發現他身體闌珊的越來越兇猛,夫妻生活方面硬度逐漸下降,時間也越來…

使用junit4測試Spring

Spring 提供便捷的測試,非常方便整合Junit 導入 spring-test-3.2.0.RELEASE.jar ---- 提供與Junit的整合 RunWith(SpringJUnit4ClassRunner.class) // 整合 ContextConfiguration(locations"classpath:applicationContext.xml") // 加載配置public class…

EasyCriteria –使用JPA Criteria的簡便方法

今天,我們將看到有關此工具的信息,該工具使使用JPA Criteria更加容易。 使用該庫的應用程序將在JPA實現中更加簡潔,易于使用和可移植。 在本文的結尾,您將找到要下載的源代碼。 什么是標準? 當前是創建動態查詢的最佳…

語言模擬蒲豐問題_R語言小數定律的保險業應用:泊松分布模擬索賠次數

原文鏈接:拓端數據科技 / Welcome to tecdat?tecdat.cn在保險業中,由于分散投資,通常會在合法的大型投資組合中提及大數定律。在一定時期內,損失“可預測”。當然,在標準的統計假設下,即有限的期望值和獨立…

THINKPHP

路徑 /index.php/home/...一般路徑應用或者U方法轉載于:https://www.cnblogs.com/lidepeng/p/6180631.html

JavaScript下的進制轉換

JavaScript下的進制轉換 //十進制轉其他進制 var num 99; console.log(十進制: , num); console.log(八進制:, (num).toString(8)) console.log(十六進制:, (num).toString(16)) console.log(三十二進制:, (num).toString(32))//其他轉十進制 var x 110; console.log(二進制&…

Spring Security第2部分–密碼加密,自定義404和403錯誤頁面

這是Spring安全站的第二部分。 在這篇文章中,我將向您展示如何使用MD5加密密碼以及自定義403和404狀態代碼錯誤頁面。 如果您尚未閱讀第1部分,請單擊 此處 。 因為我們在這里繼續第1部分項目。 下載已完成的項目: http : //www.mediafire.com…

淺談 PHP 與手機 APP 開發(API 接口開發)

本文內容轉載自:http://www.thinkphp.cn/topic/5023.html 這個帖子寫給不太了解PHP與API開發的人一、先簡單回答兩個問題:1、PHP 可以開發客戶端?答:不可以,因為PHP是腳本語言,是負責完成 B/S架構 或 C/S架構 的S部分&…

獲取人口_「微科普」14億人口數據是如何得到的?

中國經濟交出了2019年終答卷GDP總量近百萬億元人均GDP突破1萬美元……小伙伴們在關心經濟發展的同時也非常關注人口數據14億人口的話題嗖的一下就上了熱搜大家想不想知道14億人口的數據是怎么得到的?我們今天就來科普一下如何獲取人口總量?通常情況下&am…

8.動態規劃(1)——字符串的編輯距離

動態規劃的算法題往往都是各大公司筆試題的常客。在不少算法類的微信公眾號中,關于“動態規劃”的文章屢見不鮮,都在試圖用最淺顯易懂的文字來描述講解動態規劃,甚至有的用漫畫來解釋,認真讀每一篇公眾號推送的文章實際上都能讀得…