這次給大家帶來php使用curl仿製ip與refer步驟詳解,php使用curl仿製ip與refer的注意事項有哪些,下面就是實戰案例,一起來看一下。
php curl偽造來源ip和來路refer執行個體代碼1:
//隨機IPfunction Rand_IP(){ $ip2id= round(rand(600000, 2550000) / 10000); //第一種方法,直接產生 $ip3id= round(rand(600000, 2550000) / 10000); $ip4id= round(rand(600000, 2550000) / 10000); //下面是第二種方法,在以下資料中隨機抽取 $arr_1 = array("218","218","66","66","218","218","60","60","202","204","66","66","66","59","61","60","222","221","66","59","60","60","66","218","218","62","63","64","66","66","122","211"); $randarr= mt_rand(0,count($arr_1)-1); $ip1id = $arr_1[$randarr]; return $ip1id.".".$ip2id.".".$ip3id.".".$ip4id;}//抓取頁面內容function Curl($url){ $ch2 = curl_init(); $user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";//類比windows使用者正常訪問 curl_setopt($ch2, CURLOPT_URL, $url); curl_setopt($ch2, CURLOPT_TIMEOUT, 10); curl_setopt($ch2, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.Rand_IP(), 'CLIENT-IP:'.Rand_IP()));//追蹤返回302狀態代碼,繼續抓取 curl_setopt($ch2, CURLOPT_HEADER, true); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch2, CURLOPT_NOBODY, false); curl_setopt($ch2, CURLOPT_REFERER, 'http://www.baidu.com/');//類比來路 curl_setopt($ch2, CURLOPT_USERAGENT, $user_agent); $temp = curl_exec($ch2); curl_close($ch2); return $temp;}
php curl偽造來源ip和來路refer執行個體代碼2:
<?php$postData = array( "user" => "root", "pwd" => "123456");$headerIp = array( 'CLIENT-IP:88.88.88.88', 'X-FORWARDED-FOR:88.88.88.88',);$refer = 'http://www.baidu.com';$ch = curl_init();curl_setopt($ch, CURLOPT_URL, 'http://localhost/phpdemo/test.php');//偽造來源refercurl_setopt($ch, CURLOPT_REFERER, $refer);//偽造來源ipcurl_setopt($ch, CURLOPT_HTTPHEADER, $headerIp);//提交post傳參curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);//...各種curl屬性參數設定$out_put = curl_exec($ch);curl_close($ch);var_dump($out_put);
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
vuex操作state對象方法詳解
php curl批處理實現可控並發非同步作業案例詳解