2012-06-04 71 views
4

的fsockopen我有一個簡單的域名註冊腳本使用與代理

if($conn = fsockopen ($whois_server, 43)) { 
     fputs($conn, $domain."\r\n"); 
     while(!feof($conn)) { 
      $output .= fgets($conn, 128); 
     } 
     fclose($conn); 
     return $output; 
    } 

$ whois_server = whois.afilias.info; // whois服務器的信息域

但我想通過代理運行。所以我需要連接到代理 - >然後連接到whois服務器 - >然後發出請求。像這樣?

$fp = fsockopen($ip,$port); 

fputs($fp, "CONNECT $whois_server:43\r\n $domain\r\n"); 

但它不起作用,我不知道我是否正確地進行第二次連接。

+1

爲什麼要使用代理?如果這是因爲您達到了Afilias WHOIS服務器的訪問速率限制,則您需要聯繫Afilias以獲取批量WHOIS訪問權限 - 使用代理服務器也只會導致代理被阻止。 – duskwuff

回答

5

發送請求到代理應該做你喜歡什麼:

<?php 
    $proxy = "1.2.3.4"; // proxy 
    $port = 8080; // proxy port 

    $fp = fsockopen($proxy,$port); // connect to proxy 
    fputs($fp, "CONNECT $whois_server:43\r\n $domain\r\n"); 

    $data=""; 
    while (!feof($fp)) $data.=fgets($fp,1024); 
    fclose($fp); 
    var_dump($data); 
?> 

不是這樣做,我會怎麼使用curl建議與組合:

curl_setopt($ch, CURLOPT_PROXY, 1.2.3.4); 
+1

使用捲曲的+1 –