PHP怎么在多IP服務(wù)器中切換IP采集數(shù)據(jù)

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、中寧網(wǎng)站維護、網(wǎng)站推廣。
網(wǎng)友分享于:2015-08-26 瀏覽:121次
PHP如何在多IP服務(wù)器中切換IP采集數(shù)據(jù)?
在PHP 中使用CURL 采集某URL數(shù)據(jù),由于服務(wù)器擁有有多個IP,所以想在CURL中切換不同的IP來采集以防止被封,但是發(fā)現(xiàn)curl_setopt($ci, CURLOPT_PROXY, '1.1.1.1'); 這種不可用
請問有什么解決辦法,或者不使用curl 用snoopy等也可以,請大家指教
40
分享到:
------解決方案--------------------
用fsockopen
function get_from_website($ip, $domain)
{
$content = '';
$fp = fsockopen($ip, 80);
fputs($fp, 'GET / HTTP/1.0\r\n');
fputs($fp, 'Host; '.$domain.'\r\n\r\n');
while(!foef($fp)) {
$content += fgets($fp, 1024);
}
fclose($fp);
return $content;
}
get_from_website('1.1.1.1', 'example.com');
get_from_website('1.1.1.2', 'example.com');
get_from_website('1.1.1.3', 'example.com');
get_from_website('1.1.1.4', 'example.com');
服務(wù)器變量 $_SERVER 詳解:
1、$_SESSION['PHP_SELF'] — 獲取當前正在執(zhí)行腳本的文件名
2、$_SERVER['SERVER_PROTOCOL'] — 請求頁面時通信協(xié)議的名稱和版本。例如,“HTTP/1.0”。
3、$_SERVER['REQUEST_TIME'] — 請求開始時的時間戳。從 PHP 5.1.0 起有效。和time函數(shù)效果一樣。
4、$_SERVER['argv'] — 傳遞給該腳本的參數(shù)。我試了下,get方法可以得到$_SERVER['argv'][0];post方法無法給他賦值。
5、$_SERVER['SERVER_NAME'] — 返回當前主機名。
6、$_SERVER['SERVER_SOFTWARE'] — 服務(wù)器標識的字串,在響應請求時的頭信息中給出。 如Microsoft-IIS/6.0
7、$_SERVER['REQUEST_METHOD'] — 訪問頁面時的請求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
8、$_SERVER['QUERY_STRING'] — 查詢(query)的字符串(URL 中第一個問號 ? 之后的內(nèi)容)。
9、$_SERVER['DOCUMENT_ROOT'] — 當前運行腳本所在的文檔根目錄。在服務(wù)器配置文件中定義。 如E:\server
10、$_SERVER['HTTP_ACCEPT'] — 當前請求的 Accept: 頭信息的內(nèi)容。
11、$_SERVER['HTTP_ACCEPT_CHARSET'] — 當前請求的 Accept-Charset: 頭信息的內(nèi)容。例如:“iso-8859-1,*,utf-8”。
12、$_SERVER['HTTP_ACCEPT_ENCODING'] — 當前請求的 Accept-Encoding: 頭信息的內(nèi)容。例如:“gzip”。
13、$_SERVER['HTTP_ACCEPT_LANGUAGE'] — 當前請求的 Accept-Language: 頭信息的內(nèi)容。例如:“en”。
14、$_SERVER['HTTP_CONNECTION'] — 當前請求的 Connection: 頭信息的內(nèi)容。例如:“Keep-Alive”。
15、$_SERVER['HTTP_HOST'] — 當前請求的 Host: 頭信息的內(nèi)容。
16、$_SERVER['HTTP_REFERER'] — 鏈接到當前頁面的前一頁面的 URL 地址。
17、$_SERVER['HTTP_USER_AGENT'] — 返回用戶使用的瀏覽器信息。也可以使用 get_browser() 得到此信息。
18、$_SERVER['HTTPS'] — 如果通過https訪問,則被設(shè)為一個非空的值,否則返回off.
19、$_SERVER['REMOTE_ADDR'] — 正在瀏覽當前頁面用戶的 IP 地址。
20、$_SERVER['REMOTE_HOST'] — 正在瀏覽當前頁面用戶的主機名。反向域名解析基于該用戶的 REMOTE_ADDR。如本地測試返回127.0.0.1
21、$_SERVER['REMOTE_PORT'] — 用戶連接到服務(wù)器時所使用的端口。我在本機測試沒通過,不知道什么原因。
22、$_SERVER['SCRIPT_FILENAME'] — 當前執(zhí)行腳本的絕對路徑名。如返回E:\server\index.php
23、$_SERVER['SERVER_ADMIN'] — 該值指明了 Apache 服務(wù)器配置文件中的 SERVER_ADMIN 參數(shù)。如果腳本運行在一個虛擬主機上,則該值是那個虛擬主機的值
24、$_SERVER['SERVER_PORT'] — 服務(wù)器所使用的端口。默認為“80”。如果使用 SSL 安全連接,則這個值為用戶設(shè)置的 HTTP 端口。
25、$_SERVER['SERVER_SIGNATURE'] — 包含服務(wù)器版本和虛擬主機名的字符串。
26、$_SERVER['PATH_TRANSLATED'] — 當前腳本所在文件系統(tǒng)(不是文檔根目錄)的基本路徑。這是在服務(wù)器進行虛擬到真實路徑的映像后的結(jié)果。 Apache 2 用 戶可以使用 httpd.conf 中的 AcceptPathInfo On 來定義 PATH_INFO。
27、$_SERVER['SCRIPT_NAME'] — 包含當前腳本的路徑。這在頁面需要指向自己時非常有用。__FILE__ 包含當前文件的絕對路徑和文件名(例如包含文件)。
28、$_SERVER['REQUEST_URI'] — 訪問此頁面所需的 URI。例如,“/index.html”。
29、$_SERVER['PHP_AUTH_DIGEST'] — 當作為 Apache 模塊運行時,進行 HTTP Digest 認證的過程中,此變量被設(shè)置成客戶端發(fā)送的“Authorization”HTTP 頭內(nèi)容(以便作進一步的認證操作)。
30、$_SERVER['PHP_AUTH_USER']– 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,并且正在使用 HTTP 認證功能,這個變量便是用戶輸入的用戶名。
31、$_SERVER['PHP_AUTH_PW'] — 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,并且正在使用 HTTP 認證功能,這個變量便是用戶輸入的密碼。
32、$_SERVER['AUTH_TYPE']–當 PHP 運行在 Apache 模塊方式下,并且正在使用 HTTP 認證功能,這個變量便是認證的類型。
一般服務(wù)器不會胡亂返回gzip壓縮的數(shù)據(jù),一般是客戶端請求的頭部里包含你瀏覽器能接受的壓縮方式,
Accept-Encoding:gzip,deflate,sdch
這里是gzip 、deflate、sdch這三種方式,這里不一一說明是指什么,不懂的可以去找谷哥度娘,
有些服務(wù)器強制返回gzip壓縮的數(shù)據(jù),我們采集的時候,返回的是亂碼,根本無法讀取使用,這個時候馬上查看手冊
發(fā)現(xiàn)其實curl里有個參數(shù),curl_setopt($ch, CURLOPT_ENCODING,'gzip');
手冊解釋:
CURLOPT_ENCODING HTTP請求頭中"Accept-Encoding: "的值。支持的編碼有"identity","deflate"和"gzip"。如果為空字符串"",請求頭會發(fā)送所有支持的編碼類型。
只要加上這句就OK了
用fsockopen
function?get_from_website($ip,?$domain)
{
$content?=?'';
$fp?=?fsockopen($ip,?80);
fputs($fp,?'GET?/?HTTP/1.0\r\n');
fputs($fp,?'Host;?'.$domain.'\r\n\r\n');
while(!foef($fp))?{
$content?+=?fgets($fp,?1024);
}
fclose($fp);
return?$content;
}
get_from_website('1.1.1.1',?'example.com');
get_from_website('1.1.1.2',?'example.com');
get_from_website('1.1.1.3',?'example.com');
get_from_website('1.1.1.4',?'example.com');
網(wǎng)頁題目:php服務(wù)器采集數(shù)據(jù),php獲取數(shù)據(jù)庫
文章路徑:http://chinadenli.net/article8/dsehcop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、、移動網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)