[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Глюк в скрипте Whois-сервиса
Aleksey
Помогите решить проблему. Вот скрипт для получения информации о свободных и занятых доменах. Он работает,но только с доменами 1го уровня (com, net, org,nfo,name), а домены с точкой (com.ua, org.ua, net.ua, in.ua) НЕ ХОЧЕТ!!! Как исправить это???
<?php

class
maxWhois{

var $serverList;
var $tr = 0;

function maxWhois(){
$this->serverList[0]['top'] = 'com';
$this->serverList[0]['server'] = 'whois.crsnic.net';
$this->serverList[0]['response'] = 'No match for';
$this->serverList[0]['check'] = true;

$this->serverList[1]['top'] = 'net';
$this->serverList[1]['server'] = 'whois.crsnic.net';
$this->serverList[1]['response'] = 'No match for';
$this->serverList[1]['check'] = false;

$this->serverList[2]['top'] = 'org';
$this->serverList[2]['server'] = 'whois.publicinterestregistry.net';
$this->serverList[2]['response'] = 'NOT FOUND';
$this->serverList[2]['check'] = false;

$this->serverList[3]['top'] = 'info';
$this->serverList[3]['server'] = 'whois.afilias.net';
$this->serverList[3]['response'] = 'NOT FOUND';
$this->serverList[3]['check'] = false;

$this->serverList[4]['top'] = 'name';
$this->serverList[4]['server'] = 'whois.nic.name';
$this->serverList[4]['response'] = 'No match';
$this->serverList[4]['check'] = false;

$this->serverList[5]['top'] = 'us';
$this->serverList[5]['server'] = 'whois.nic.us';
$this->serverList[5]['response'] = 'Not found:';
$this->serverList[5]['check'] = false;

$this->serverList[6]['top'] = 'biz';
$this->serverList[6]['server'] = 'whois.neulevel.biz';
$this->serverList[6]['response'] = 'Not found';
$this->serverList[6]['check'] = false;

$this->serverList[7]['top'] = 'ca';
$this->serverList[7]['server'] = 'whois.cira.ca';
$this->serverList[7]['response'] = 'AVAIL';
$this->serverList[7]['check'] = false;

$this->serverList[8]['top'] = 'tv';
$this->serverList[8]['server'] = 'tvwhois.verisign-grs.com';
$this->serverList[8]['response'] = 'No match for';
$this->serverList[8]['check'] = false;

$this->serverList[9]['top'] = 'co.uk';
$this->serverList[9]['server'] = 'whois.nic.uk';
$this->serverList[9]['response'] = 'No match for';
$this->serverList[9]['check'] = false;

$this->serverList[10]['top'] = 'me.uk';
$this->serverList[10]['server'] = 'whois.nic.uk';
$this->serverList[10]['response'] = 'No match for';
$this->serverList[10]['check'] = false;

$this->serverList[11]['top'] = 'org.uk';
$this->serverList[11]['server'] = 'whois.nic.uk';
$this->serverList[11]['response'] = 'No match for';
$this->serverList[11]['check'] = false;

$this->serverList[12]['top'] = 'cc';
$this->serverList[12]['server'] = 'whois.nic.cc';
$this->serverList[12]['response'] = 'No match for';
$this->serverList[12]['check'] = false;

$this->serverList[13]['top'] = 'mobi';
$this->serverList[13]['server'] = 'whois.dotmobiregistry.net';
$this->serverList[13]['response'] = 'NOT FOUND';
$this->serverList[13]['check'] = false;

$this->serverList[14]['top'] = 'bz';
$this->serverList[14]['server'] = 'whois2.afilias-grs.net';
$this->serverList[14]['response'] = 'NOT FOUND';
$this->serverList[14]['check'] = false;

$this->serverList[15]['top'] = 'su';
$this->serverList[15]['server'] = 'whois.ripn.net';
$this->serverList[15]['response'] = 'No entries found';
$this->serverList[15]['check'] = false;

$this->serverList[16]['top'] = 'ru';
$this->serverList[16]['server'] = 'whois.ripn.net';
$this->serverList[16]['response'] = 'No entries found';
$this->serverList[16]['check'] = false;

$this->serverList[17]['top'] = 'eu';
$this->serverList[17]['server'] = 'eu.whois-servers.net';
$this->serverList[17]['response'] = 'Status: AVAILABLE';
$this->serverList[17]['check'] = false;

$this->serverList[18]['top'] = 'in';
$this->serverList[18]['server'] = 'whois.inregistry.net';
$this->serverList[18]['response'] = 'NOT FOUND';
$this->serverList[18]['check'] = false;

$this->serverList[19]['top'] = 'asia';
$this->serverList[19]['server'] = 'whois.nic.asia';
$this->serverList[19]['response'] = 'NOT FOUND';
$this->serverList[19]['check'] = false;


}

function showHeader(){
?>
<div id="container">
<
div id="header"><div id="header_left"></div>
<
div id="header_main">Whois lookup</div><div id="header_right"></div></div>
<
div id="content">
<?php
}

function showWhoisForm(){
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >
<
table class="dtable2">
<
tr><th colspan="5">Enter a domain name:</th></tr>
<
tr><td colspan="5"><center>www.<input name="domain" type="text" size="35" /></center></td></tr>
<
tr><th colspan="5">Select an extension:</th></tr>
<
tr>
<?php
$i = 0;
foreach ($this->serverList as $value) {
if ($value['check'] == true) $checked=" checked ";
else $checked = " ";

echo '<td><input type="checkbox" name="top_'.$value['top'].'"'.$checked.'/>.'.$value['top'].'</td>';
$i++;
if ($i > 4) {
$i = 0;
echo '</tr><tr>';
}
}


?>
</tr>
</
table>
<
center><input type="submit" name="submitBtn" class="sbtn" value="Check" /></center>
</
form>
<?php
}

function showFooter(){
?>
</div>

</
div>

<?php
}

function processWhois(){
$this->showHeader();

if (!isset($_POST['submitBtn'])){
$this->showWhoisForm();
} else {

$domainName = (isset($_POST['domain'])) ? $_POST['domain'] : '';

for ($i = 0; $i < sizeof($this->serverList); $i++) {
$actTop = "top_".$this->serverList[$i]['top'];
$this->serverList[$i]['check'] = isset($_POST[$actTop]) ? true : false;
}

// Check domains only if the base name is big enough
if (strlen($domainName)>2){
echo '<table class="dtable">';
echo '<tr><th colspan="2">Result</th></tr>';

for ($i = 0; $i < sizeof($this->serverList); $i++) {
if ($this->serverList[$i]['check']){
$this->showDomainResult($domainName.".".$this->serverList[$i]['top'],
$this->serverList[$i]['server'],
$this->serverList[$i]['response']);
}
}


echo '</table>';
}
$this->showWhoisForm();

}
$this->showFooter();

}

function showDomainResult($domain,$server,$findText){
if ($this->tr == 0){
$this->tr = 1;
$class = " class='tr2'";
} else {
$this->tr = 0;
$class = "";
}
if ($this->checkDomain($domain,$server,$findText)){
echo "<tr $class><td>$domain</td><td class='ava'>AVAILABLE</td></tr>";
}
else echo "<tr $class><td>$domain</td><td class='tak'>".'<a href="'."javascript:popUp('quick.php?d=$domain&s=$server')".'">TAKEN</a></td></tr>';
}

function checkDomain($domain,$server,$findText)
{
$con = fsockopen($server, 43);
if (!$con) return false;

// Send the requested doman name
fputs($con, $domain."\r\n");

$response = ' :';
while(!feof($con)) {
$response .= fgets($con,128);
}

fclose($con);

// Check the response stream whether the domain is available
if (strpos($response, $findText)){
return true;
}
else {
return false;
}
}

}

?>




Спустя 3 часа, 46 минут, 34 секунды (22.03.2011 - 22:42) Админ написал(а):
нда тут даже php не обязательно знать - достаточно простой логики

Спустя 1 час, 17 минут, 15 секунд (22.03.2011 - 23:59) inpost написал(а):
Aleksey
В maxWhois прописано все допустимые домены, в этом и проблема.

Спустя 1 минута, 16 секунд (23.03.2011 - 00:00) Админ написал(а):
inpost
проблема в том, что люди не хотят думать

Спустя 21 минута, 23 секунды (23.03.2011 - 00:21) inpost написал(а):
Админ
я думаю, что автор просто ПХП не знает (классы в первую очередь), вставил и не так работает, как надо. Сам изменить не умеет, надеется, что за него сделают, но это лишь мои предположения.
Я ответ дал, поступил благородно где искать проблему, ну а дальше: "спасение утопающего - дело рук самого утопающего".
Меня больше всего понравился вот этот отрезок:
function showFooter(){
?>
</div>

</
div>

<?php
}

Правильно, самое место вот тут использовать ООП =) Как говорится, хорошие скрипты бесплатными не бывают.

Спустя 1 день, 14 часов, 24 минуты, 41 секунда (24.03.2011 - 14:46) Aleksey написал(а):
Цитата (inpost @ 22.03.2011 - 20:59)
Aleksey
В maxWhois прописано все допустимые домены, в этом и проблема.

Верно, прописаны, только те что с точкой (org.uk и т.п) не проверяет! Поменять домены на нужные непроблема, к примеру на UA, а вот на COM.UA проблема!!!

Спустя 6 минут, 29 секунд (24.03.2011 - 14:53) Aleksey написал(а):
Цитата (Админ @ 22.03.2011 - 21:00)
inpost
проблема в том, что люди не хотят думать

проблема НЕ в том, что люди не хотят думать, а в том что одни заведомо считают других дибилами, не поняв суть вопроса!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.