在有些時候,我們需要使用CURL來類比請求完成一些事情。但現實總是和理想有些差距,對方伺服器可能隊請求來源資訊做了一些限制,這個時候該如何處理呢?本文就將告訴你如何讓curl偽裝來源資訊,來騙過伺服器的來源資訊限制。
[one.php]
<?php$post_data = array ("user" => "admin","pwd" => "123456");$header_ip = array( 'CLIENT-IP:8.8.8.8', 'X-FORWARDED-FOR:8.8.8.8',);$referer='http://www.liangshao.com';$ch = curl_init();curl_setopt ($ch, CURLOPT_URL, 'http://localhost/curl/two.PHP');//偽造來源referercurl_setopt ($ch,CURLOPT_REFERER,$referer);//偽造來源ipcurl_setopt($ch, CURLOPT_HTTPHEADER, $header_ip);//提交post傳參curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);//加上這個表示執行curl_exec是把輸出做為傳回值,不會輸出到瀏覽器curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$out_put=curl_exec ($ch);curl_close ($ch);echo $out_put;
[two.php]
<?php//請求來源refererecho '[HTTP_REFERER]<br>';echo $_SERVER['HTTP_REFERER']; //請求來源ip //[注]此處的IP列印順序是目前很多開源系統的IP擷取順序 echo '<hr>[IP]<br>'; echo $_SERVER['HTTP_CLIENT_IP']; echo '<br>'; echo $_SERVER['HTTP_X_FORWARDED_FOR']; echo '<br>'; echo $_SERVER['REMOTE_ADDR']; //POST資料 echo '<hr>[POST]<br><pre>'; var_dump($_POST); echo '</pre>';
相關閱讀;
php CURL擷取cookies類比登入的方法代碼執行個體
php curl錯誤排查的方法詳解
PHP curl類比登入帶驗證碼的網站