2012-07-13 3 views
0

Я столкнулся со следующей функцией проверки домена, и я не могу заставить ее работать.Поиск доменных имен 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!"; 
}  

}

я получаю следующее сообщение об ошибке:

Warning: fsockopen() [function.fsockopen]: unable to connect to whois.verisign-grs.com:43

оцененная помощь!

+0

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

+0

Это не просто сервер verisign, который дает ошибку, они все делают. Неужели эти серверы перестали предоставлять эту информацию бесплатно? – HWD

+0

Это возможность. Возможно, вы можете проверить с помощью verisign, чтобы узнать, есть ли у них какие-либо серверы whois с открытым доступом через API или веб-сервис. – F21

ответ

0

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

Я нашел решение Verisign:

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

Параметры: eswhois_nic это доменное имя, и whois_tld либо ком или чистый, основанный на домене Тогда просто получить запрос с curl или file_get_contents и voila;)

+0

Я получаю ошибку 500 с этим URL. Есть опечатка или что-то еще? – HWD

+0

Хорошо, работал для меня раньше, может быть, у меня что-то было в сессии, обновлен мой url :) – Kristian

+0

Этот URL-адрес все еще не возвращает ничего для меня. Через некоторое время он просто уходит. Я все еще что-то пропустил? – HWD

0

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

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

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

Смежные вопросы