KOTOFF.NET
  • Главная
  • Пользователи
  • Контакты
  • Статистика
  • Правила
  • О нас
  • Вход / Регистрация

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

Статьи / PHP

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;
}


Проверяем работу скрипта на примере домена KOTOFF.net

 


  • rgr
  • 13.12.2023
  • 1 030
  • 0
Настройка своей VDS на Debian (8) под сайт
Настройка своей VDS на Debian (8) под сайт
17-09-2019, 12:07, Статьи
Работа с базой данных [phpMyAdmin] через RedBeanPHP
Работа с базой данных [phpMyAdmin] через RedBeanPHP
19-09-2019, 15:54, Статьи / PHP
Использование фреймворков в PHP: выбор и преимущества
Использование фреймворков в PHP: выбор и преимущества
30-11-2023, 23:39, PHP
Система комментариев на PHP
Система комментариев на PHP
26-10-2023, 14:26, PHP
BOT VK — Роли для беседы | PHP
BOT VK — Роли для беседы | PHP
10-07-2022, 17:11, PHP
Movie

Нет комментариев. Не желаешь оставить первый комментарий?

Перед публикацией, советую ознакомится с правилами!

{login}

Твой комментарий..

Заказывай!
Разработка ботов на заказ, любой сложности, обращаться:
 VK KOTOFF.net - Сообщество, в личные сообщения или по контактам указанным там 
 mail: [email protected]

Рекламный блок
  • Новости
  • Платная категория
  • Блог
  • Игры
  • Обновления
  • Программы
  • Статьи
    • PHP
    • Python
    • JS
  • Дизайн
    • PSD исходники
  • DLE
    • Шаблоны
    • Модули
    • Хаки
  • Магазин
    • Скрипты
Комментарии
Система комментариев на PHP
Полезная статья
Создание простого Telegram-бота с клавиатурой и inline-кнопками [Часть 2]
Класс, хорошая тема
Динамическая обложка для группы ВК, последний подписчик, топ комментатор и прочее
Как отключить вывод результата cron в папку modules/cron в Open Server? Крон запускает несколько
Динамическая обложка для группы ВК, последний подписчик, топ комментатор и прочее
Планируете ли вернуться к динамической обложке?
Скрипт для скачивания видео с YouTube на PHP
Уже не работает.
Все комментарии..
Полный список последних комментариев
Лучшие новости
Всего публикаций: 111
Добавлено за сутки: +0
Записей в блоге: 1
Добавлено за сутки: +0
Комментариев: 936
Добавлено за сутки: +0
Пользователей: 4124
Добавлено за сутки: +0
Полная статистика..
Подробная статистика сайта
Loading...

Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter

Полезные ссылки
  • О проекте
  • Наши контакты
  • Администрация
  • Рекламные материалы
  • Идеи и предложения
  • Ответы на вопросы
Информация
  • Условия сделки
  • Способы оплаты
  • Поддержка / F.A.Q
  • Онлайн документация
  • Статистика сайта
  • Список пользователей
Услуги/Работа
  • Разработка ботов ВК
  • Обновление проекта
  • Консультация/поддержка
KOTOFF.net

Copyright © Footer 2019-2023. All right reserved.
KOTOFF.net - Уроки по PHP, SQL, IT новости
Быстрый вход

Используйте социальные сети для быстрой регистрации и авторизации.

Google
ВКонтакте
Яндекс
Mail.ru
Создать аккаунт / Регистрация
Авторизация

Я забыл свой пароль