Глючит определение свободен домен или нет

Yurecm
На сайте с 25.02.2007
Offline
233
1401

Раньше работал хорошо скрипт по определению, свободен домен или занят.

Сейчас все домены даже свободные, показывает, что заняты.

Как исправить? Заранее спасибо!

<?php

if(!$_POST['who']) {
echo <<<HTML
<script type="text/javascript">
function checkDomain(domain) {
$('#waiting').fadeIn('slow');
$.ajax({
type: "POST",
url: "catalog0.php",
data: "domain="+domain+"&who=1",
success: function (k) {
$('#waiting').fadeOut('fast');
$('#result').html(k);
}
});
return false;
}
</script>


<h1>Подберите домен (адрес сайта)</h1>
<p>Пример: site.ru, my-site.ru</p>
Введите адрес сайта: <input type="text" name="domain" id="domain" value="{$_POST['domain']}" onKeyPress ="if ((event.keyCode == 13)) {checkDomain($('#domain').val());}">
<input type="submit" name="who" onClick="checkDomain($('#domain').val());" value="Проверить" style="margin-top:0px;">

<div id="waiting" style="display:none;"><img src="loader.gif" /></div>
<div id="result" ></div>
HTML;

} else {

function checkurl($url) {

$url = trim( $url );
if( strlen( $url ) == 0 ) return 1;

if ( !preg_match("~^(?:(?:https?|ftp|telnet)://(?:[а-яa-z0-9_-]{1,32}".
"(?::[а-яa-z0-9_-]{1,32})?@)?)?(?:(?:[а-яa-z0-9-]{1,128}\.)+(?:com|net|".
"org|mil|edu|arpa|gov|biz|info|aero|inc|name|рф|[a-z]{2})|(?!0)(?:(?".
"!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[а-яa-z0-9.,_@%&". "?+=\~/-]*)?(?:#[^ '\"&<>]*)?$~i", $url, $ok))
return -1;

if ( !strstr( $url,"://" ) ) $url = "http://".$url;
$url = preg_replace_callback("~^[a-z]+~i", create_function ('$m','return strtolower($m[0]);'), $url);
return $url;

}

include "classes/snoopy.class.php";
$page = new Snoopy;
$url = iconv('UTF-8','WINDOWS-1251',trim($_POST['domain']));
$url = str_replace('https','http',$url);
$url = preg_replace("/www./i", "", $url);
$url = str_replace("www.","",$url);

if (strlen($url) > 40) {
die("<strong>Слишком длинное доменное имя!</strong>");
}

if(!$url) {
die("<strong>Введите адрес домена!</strong>");
}

if (checkurl($url) == -1 OR preg_match('#--#', $url) OR preg_match('#---#', $url)) {
die("<strong>Вы ввели адрес сайта не правильно, верный формат: site.ru, www.site.ru, также поддерживается зона .рф</strong>");
}

if((substr($url, 0, 7)) == "http://") $url = str_replace('http://','',$url);
if((substr($url, 0, 4)) == "www.") $url = str_replace('www.','',$url);
if(strpos($url,'/')>0) list($url) = explode('/',$url);

$domen = "http://www.r01.ru/whois/check-domain.php?domain=".$url;
$page->fetch($domen);
$data = $page->results;
//echo $data;

if(preg_match('#Домен свободен#', $data)) {
die("<strong>Домен свободен!</strong>");
} else {
die("<strong>Домен занят!</strong>");
}
}
?>
Samail
На сайте с 10.05.2007
Offline
369
#1

С кодировкой что-то. Что-бы не искать что именно, можно просто поменять:

 if(preg_match('#Домен свободен#', $data)) {

на:

if(preg_match('#\<font color=\'\#800000\'\>#', $data)) {
Yurecm
На сайте с 25.02.2007
Offline
233
#2

Samail, В репу шлепнул плюс, СПАСИБО!

Но НЕ помогло!!!

Как исправить? может вообще другой код какой-то универсальный сделать? чтобы ВСЕГДА работал?

Samail
На сайте с 10.05.2007
Offline
369
#3

if(preg_match('#800000#', $data)) {

Ну так поставьте, а вообще я проверил, у меня работает то что выше.

Yurecm
На сайте с 25.02.2007
Offline
233
#4

Samail, все также не работает. Проверял на хостинге и на денвере!

Для СВОБОДНОГО домена пишет, что занят!!!

Вбейте к примеру freeeee.ru он напишет, что занят. Но сам домен свободен!

Добавил echo "!!!!!!!!".$data;

выдал такое

Samail
На сайте с 10.05.2007
Offline
369
#5

Так вас сам сайт r01.ru куда-то редиректит, поглядите куда.

S
На сайте с 30.09.2016
Offline
469
#6
Samail:
Так вас сам сайт r01.ru куда-то редиректит, поглядите куда.

А чего там глядеть особенно? На https :)

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Samail
На сайте с 10.05.2007
Offline
369
#7
Yurecm:
может вообще другой код какой-то универсальный сделать? чтобы ВСЕГДА работал?

Вот ваш файл немного подправил, через другой сайт проверяет и рф в пьюникод преобразует заодно теперь.

[ATTACH]168807[/ATTACH]

zip catalog0.zip
Yurecm
На сайте с 25.02.2007
Offline
233
#8

Samail, а этот https://netfox.ru/whois/api не крякнется через месяц другой?

не придется другой скрипт писать?

tommy-gung
На сайте с 22.11.2006
Offline
300
#9

Yurecm, этот вопрос логично задавать нетфоксу

Здесь не могла быть ваша реклама
Yurecm
На сайте с 25.02.2007
Offline
233
#10
tommy-gung:
Yurecm, этот вопрос логично задавать нетфоксу

а есть какой-то универсальный способ проверки домена, которые гарантировано лет 10 будет работать и не придеться менять ничего, никаких кодировкох, разметок и прочего ???

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий