将fsockopen与代理一起使用

nac*_*bre 4 php proxy whois fsockopen

我有一个简单的whois脚本

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

$ whois_server = whois.afilias.info; //用于信息域的whois服务器

但我想通过代理运行.所以我需要连接到代理 - >然后连接到whois服务器 - >然后发出请求.像这样的东西?

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

fputs($fp, "CONNECT $whois_server:43\r\n $domain\r\n");
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我不知道我是否正确进行第二次连接.

小智 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);
?>
Run Code Online (Sandbox Code Playgroud)

而不是这样做我会建议你结合使用CURL:

curl_setopt($ch, CURLOPT_PROXY, 1.2.3.4);
Run Code Online (Sandbox Code Playgroud)