<?php header("Content-type:text/html charset=utf-8"); $data = myCurl('http://ip.ws.126.net/ipquery', '117.58.201.43'); // 僞造 IP 並獲取數據 preg_match('/lo="(.*)", lc="(.*)";/', $data, $arr); print_r($arr); /** * Curl 僞造 IP 並從指定網址獲取數據 * @param $url 接口地址 * @param $ip 僞造的 IP * @return 抓取到的內容 */ function myCurl($url, $ip){ $ch = curl_init(); // Curl 初始化 $timeout = 30; // 超時時間:30s $ua='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'; // 僞造抓取 UA curl_setopt($ch, CURLOPT_URL, $url); // 設置 Curl 目標 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Curl 請求有返回的值 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // 設置抓取超時時間 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 跟蹤重定向 curl_setopt($ch, CURLOPT_ENCODING, ""); // 設置編碼 curl_setopt($ch, CURLOPT_REFERER, $url); // 僞造來源網址 curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.$ip, 'CLIENT-IP:'.$ip)); //僞造IP curl_setopt($ch, CURLOPT_USERAGENT, $ua); // 僞造ua curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); // 取消gzip壓縮 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // https請求 不驗證證書和hosts curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); $content = curl_exec($ch); curl_close($ch); // 結束 Curl return $content; // 函數返回內容 } ?>