Поиск доступности домена WHOIS

Я наткнулся на следующую функцию проверки домена и не могу заставить ее работать.

function domain_checker($domain){

$extension = explode(".",$domainname);  
$extension = $extension[1];  
switch($extension)  
{  
    case "com": $server = "whois.verisign-grs.com"; break;  
    case "net": $server = "whois.verisign-grs.com"; break;  
    case "org": $server = "whois.pir.org"; break;  
    case "info": $server = "whois.afilias.net"; break;  
    case "biz": $server = "whois.biz"; break;  
    case "name": $server = "whois.nic.name"; break;  
    default: return "Given Extension not supported"; exit();  
}  
// connecting to the whois server.  
$handle = fsockopen($server, 43);  
if (!$handle)  
    return false; // connectin failure   

//asking the server  
fwrite($handle, $domainname."\r\n");  

// getting response  
$response = '';  
while (!feof($handle))  
    $response .= fgets($handle, 1024);  

fclose($handle);  
//checking if domain is available or not  
if($extension=="com" || $extension=="net" || $extension=="name")  
{  
    if(stripos($response, 'No match') === FALSE )  
        return $domainname." is not Available!";  
    else  
        return $domainname. " is Available!";  
}  
else  
{  
    if(stripos($response, "NOT FOUND") === FALSE)  
        return $domainname. " is not Available!";  
    else  
        return $domainname. " is Available!";  
}      

}

Я продолжаю получать следующую ошибку:

Предупреждение: fsockopen() [function.fsockopen]: невозможно подключиться к whois.verisign-grs.com:43

Помощь приветствуется!


person HWD    schedule 13.07.2012    source источник
comment
Из сообщения об ошибке видно, что whois.verisign-grs.com не принимает соединения через порт 43. Вероятно, вам придется найти другой whois-сервер, на который будут передаваться ваши запросы.   -  person F21    schedule 13.07.2012
comment
Ошибку выдает не только сервер VeriSign, но и все. Эти серверы перестали предоставлять эту информацию бесплатно?   -  person HWD    schedule 13.07.2012
comment
Это возможность. Возможно, вы могли бы обратиться в службу поддержки Verisign, чтобы узнать, есть ли у них какие-либо серверы whois с публичным доступом через API или веб-сервис.   -  person F21    schedule 14.07.2012
comment
Возможно ли что-то на моем сервере, что мешает мне выполнить запрос whois? Я нашел демонстрацию скрипта, похожего на этот, и он работал нормально, но когда я добавил эту функцию на свой сайт, время истекло...   -  person HWD    schedule 20.07.2012
comment
Да, это тоже возможность. Вы можете запустить оболочку на своем сервере и попробовать подключиться к серверу whois?   -  person F21    schedule 21.07.2012
comment
Если вы не можете подключиться к какому-либо серверу через порт 43, это, безусловно, означает, что либо на вашем хосте есть firewqll, запрещающий вам это делать (глупо, но это случается), либо что-то в сети между вашим хостом и Интернетом, что запрещает вам это делать. что таким же образом. Поэтому вам нужно будет поговорить с вашим системным администратором/провайдером, чтобы решить эту проблему.   -  person Patrick Mevzek    schedule 04.01.2018


Ответы (2)


Как написал @phpdev: Из сообщения об ошибке видно, что whois.verisign-grs.com не принимает соединения через порт 43. Вероятно, вам придется найти другой сервер whois для передачи ваших запросов.

Я нашел решение для проверки:

http://www.verisigninc.com/cgi-bin/whois?type=domain&eswhois_nic=google.com&whois_tld=com

Параметры: eswhois_nic — это имя домена, а whois_tld — это либо com, либо net, в зависимости от домена. Затем просто получите запрос с помощью curl или file_get_contents и вуаля;)

person Kristian    schedule 13.07.2012
comment
Я получаю ошибку 500 с этим URL. Там опечатка или что? - person HWD; 13.07.2012
comment
Хорошо, раньше у меня работало, может быть, у меня что-то было в сеансе, обновил свой URL :) - person Kristian; 16.07.2012
comment
Этот URL по-прежнему ничего не возвращает для меня. Он просто истекает через некоторое время. Я все еще что-то упускаю? - person HWD; 20.07.2012

Я могу убедиться, что ссылка, опубликованная Кристианом, работает. Вам просто нужно сначала установить COOKIE. Теперь у него есть капча на их основном сайте, расположенном здесь.

Вам нужно будет заставить своих пользователей заполнить там капчу и сохранить результат файла cookie.

http://www.verisigninc.com/en_US/products-and-services/domain-name-services/whois/index.xhtml

person Joe    schedule 30.07.2012