Перейти к содержанию
  • Регистрация

Стол заказов

  • 16 565
  • 105
Проверить

Кошелёк в Telegram | Wallet

  • 1 050
  • 1
Проверить

Как создать Whois сервис?


Рекомендуемые сообщения

  • Aprel Team

WHOIS (произносится как «Кто есть») — это протокол запросов и ответов, который обычно используется для поиска деталей интернет-ресурсов, таких как доменное имя, блок IP-адресов или автономная система, а также другой важной информации. База данных сервера протокола WHOIS хранит и возвращает информацию в удобочитаемом формате. Информация о текущем регистраторе домена, информации о регистранте, дате истечения срока действия и т. д.

Поскольку в этом руководстве мы рассмотрим живой пример создания сценария поиска домена WHOIS с помощью PHP, основные файлы для этого примера приведены ниже.

  • index.php
  • functions.php


Шаг 1. Разработка HTML-формы поиска Whois

Сначала мы создадим файл index.php и разработаем HTML-форму с полем для ввода доменного имени и кнопкой поиска, чтобы получить информацию WHOIS домена при отправке формы.

<div class="container">    
    <label class="text-info">
    <?php if($message) { ?>
        <span class="text-danger"><strong><?php echo $message; ?></strong></span>
    <?php } ?>    
    </label>                    
    <div class="row">                    
        <form name="form" class="form" 
action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">                    
            <div class="col-md-6">                
                <div class="form-group">                            
                    <input type="text" 
name="domain"
 id="domain" class="form-control" value="<?php echo $domain; ?>"
 placeholder="Enter domain name">
                </div>    
            </div>
            <div class="col-md-4">                                
                <div class="form-group">                    
                    <button type="submit" 
class="btn btn-info btn-md"><i class="fa fa-search"></i> WHOIS</button>                    
                </div>    
            </div>                    
        </form>                
    </div>    
</div>

Шаг 2. Отображение информации WHOIS домена.

После ввода доменного имени и отправки формы мы получим доменное имя без http или www и перейдем к функции validateDomain() для проверки действительного доменного имени. Затем мы вызовем функцию LookUpDomain() , чтобы получить информацию WHOIS домена, и сохраним ее в переменной $result для ее отображения.

if(isset($_POST['domain'])){ 
    $domain = $_POST['domain'];    
    $domain = trim($domain);
    if(substr(strtolower($domain), 0, 7) == "http://") $domain = substr($domain, 7);
    if(substr(strtolower($domain), 0, 8) == "https://") $domain = substr($domain, 8);
    if(substr(strtolower($domain), 0, 4) == "www.") $domain = substr($domain, 4);
    if(validateDomain($domain)) {
        $result = lookUpDomain($domain);
    } else {
        $message = "Invalid Input!";
    }
}

Мы будем отображать информацию WHOIS домена, используя переменную результата.

<?php
if($result) {
    echo "<pre>\n" . $result . "\n</pre>\n";
}
?>

Шаг 3. Получите информацию WHOIS домена.

Мы создадим функцию LookUpDomain() и проверим наличие сервера WHOIS домена, используя массив $ whoIsServers , в котором хранится имя сервера WHOIS. Если сервер WHOIS домена существует, мы вызываем функцию getWhoisServerDetails() , чтобы отправить запрос серверу WHOIS для получения сведений о домене.

function lookUpDomain($domain){
    global $whoIsServers;
    $domainParts = explode(".", $domain);
    $tld = strtolower(array_pop($domainParts));
    $whoIsServer = $whoIsServers[$tld];
    if(!$whoIsServer) {
        return "Error: No appropriate Whois server found for $domain domain!";
    }
    $whoIsResult = getWhoisServerDetails($whoIsServer, $domain);
    if(!$whoIsResult) {
        return "Error: No results retrieved from $whoIsServer server for $domain domain!";
    } else {
        while(strpos($whoIsResult, "Whois Server:") !== FALSE){
            preg_match("/Whois Server: (.*)/", $whoIsResult, $matches);
            $secondary = $matches[1];
            if($secondary) {
                $whoIsResult = getWhoisServerDetails($secondary, $domain);
                $whoIsServer = $secondary;
            }
        }
    }
    return "$domain domain lookup results from $whoIsServer server:\n\n" . $whoIsResult;
}

Шаг 4. Сделайте запрос к WHOIS-серверу домена.

В файле function.php мы создадим функцию getWhoisServerDetails() , чтобы сделать запрос к WHOIS-серверу и получить информацию WHOIS.

function getWhoisServerDetails($whoIsServer, $domain) {
    $port = 43;
    $timeout = 10;
    $whoIsInfo = @fsockopen($whoIsServer, $port, $errno, $errstr, $timeout) or 
die("Socket Error " . $errno . " - " . $errstr);    
    fputs($whoIsInfo, $domain . "\r\n");
    $output = "";
    while(!feof($whoIsInfo)){
        $output .= fgets($whoIsInfo);
    }
    fclose($whoIsInfo);
    $whosIsResults = "";
    if((strpos(strtolower($output), "error") === FALSE) 
&& (strpos(strtolower($output), "not allocated") === FALSE)) {
        $whoIsRecords = explode("\n", $output);
        foreach($whoIsRecords as $whoIsRecord) {
            $whoIsRecord = trim($whoIsRecord);
            if(($whoIsRecord != '') && ($whoIsRecord{0} != '#') && ($whoIsRecord{0} != '%')) {
                $whosIsResults .= $whoIsRecord."\n";
            }
        }
    }
    return $whosIsResults;
}
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей на связи

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Кто на связи   7 пользователей, 0 анонимных, 285 гостей (Посмотреть всех)

×
×
  • Создать...