Aprel Team Samurai Опубликовано 19 марта Aprel Team Поделиться Опубликовано 19 марта 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; } Обратиться Цитата Ссылка на комментарий
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.