Использовать Fsockopen с прокси? - PullRequest
0 голосов
/ 12 января 2020

Мне нужна рука с fsockopen. Мне нужно сделать whois через прокси-сервер (Curl не подходит для некоторых серверов whois, поэтому я не могу его использовать)

У меня есть 2 кода, которые хорошо работают, первый для подключения к серверу whois с sockopen. Второй для вызова сайта через прокси. Но я не могу смешать два, я все еще получаю ответ «HTTP / 1400 Bad Request Server».

Этот код хорошо работает только для вызова сервера Whois

<?PHP

$fp = fsockopen("whois.nic.uk", 43, $errno, $errstr);

if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
echo "<h1>Connected To The WHOIS Server.</h1>\n\n";
}

fwrite($fp, "madeupdomain.co.uk\r\n");

while (!feof($fp)) {
   $contents .= fread($fp, 8192);
}
fclose($fp);
var_dump($contents);
<?PHP
function connect_to_http_proxy($host, $port, $destination) {
    $fp = fsockopen($host, $port, $errno, $errstr);
    if ($errno == 0) {
        $connect = "CONNECT $destination HTTP/1.1\r\n\r\n";
        fwrite($fp, $connect);
        $rsp = fread($fp, 1024);
        if (preg_match('/^HTTP\/\d\.\d 200/', $rsp) == 1) {
            return $fp;
        }
        echo "Request denied, $rsp\n";
        return false;
    }
    echo "Connection failed, $errno, $errstr\n";
    return false;
}

$proxy = "1.2.3.4";  //Obviously it's not my proxy's ip.
$port = 12345; /it's not my proxy's ip.
$destination="ipinfo.io:80"; 
$fp = connect_to_http_proxy($proxy, $port, $destination);
if ($fp) {

    fwrite($fp, "GET /?format=json HTTP/1.1\r\nHost: $destination\r\n\r\n");
     echo fread($fp, 1024);
    fclose($fp);

}

Можете ли вы помочь мне использовать прокси для связи с whois из этих кодов? Заранее спасибо.

...