Как стать автором
Обновить
0
Поиск VPS
Помогаем найти самый лучший виртуальный сервер

Поиск VPS — whois-сервис и взгляд изнутри

Время на прочтение5 мин
Количество просмотров7.3K
Сегодня сервису исполняется один год. Запуск произошел на пару дней позже даты регистрации домена, но сегодняшнюю дату можно считать первым днем рождения.

Whois-сервис


На Поиске VPS появилась новая функция — просмотр whois информации по домену. Сервис поддерживает 529 доменных зон (включая New gTLD), и для части из них происходит парсинг whois и определяется дата регистрации, дата окончания регистрации домена и регистратора и отображаются ДНС сервера. К сожалению, доменных зон много, а рабочих рук мало, поэтому определение этих параметров на данный момент доступно только для самых популярных зон, но в самое ближайшее время количество таких зон будет расширено. Также, в ближайших планах есть написание «Блокнота доменов» и «Блокнота серверов».



Поиск VPS — взгляд изнутри


Когда я вижу какой-нибудь необычный проект, у меня возникает непреодолимое желание узнать, на чем он написан, как выглядит админка, какие сервера он использует и другую информацию, которая скрыта от любопытных глаз.

Чаще всего такое желание остается лишь желанием, так как дальше просмотра html кода страницы продвинуться некуда. Однако сегодня я решил рассказать, на чем работает Поиск VPS и показать скриншоты админки.



Сайт написан на php и работает на движке форума phpbb3. Этот движок был выбран по нескольким причинам: во-первых, я очень много работал с этой системой и могу написать любой код с закрытыми глазами, а во-вторых, использование этого движка сэкономило кучу времени, и мне не пришлось писать модули для регистрации пользователей, восстановления паролей, входа, капчи и т. д. Ну и в конце-концов, на сайте есть хорошо функционирующий форум.

С серверной стороны сайт работает на виртуальном сервере от DigitalOcean и используется ОС Debian. Этот сервис был выбран для того, чтобы перед публикациями статей на хабре легко увеличивать мощность сервера и не упасть от хабраэффекта. Также на сервере установлена панель управления ISPmanager. Обработкой запросов занимаются nginx и apache. В качестве сервера баз данных выступает mysql.

Из библиотек используются jquery и jqueryui. Это сочетание позволило сделать интерфейс очень удобным и функциональным. Например, ползунки и выпадающие списки, всплывающие подсказки и т. д. — это заслуга вышеупомянутых библиотек.



Часть функций сайта работает без перезагрузки страницы на AJAX. Очень удобно, когда пользователь двигает ползунок или делает выбор в выпадающем меню: после изменения параметров поиска страница не перезагружается, и пользователь может быстро выбрать необходимые параметры. С технической стороны на сервер отправляется POST запрос и ожидается ответ в виде JSON массива. Если в ответе пришел не JSON массив — значит, произошла какая-то ошибка на сервере, и нужно показать уведомление об этом. В случае, если пришел JSON массив, то один из ключей этого массива будет “Error”. Каждый раз идет проверка этого значения, и если оно не равно нулю, то пользователю показывается сообщение об ошибке, в противном случае этот массив содержит результат выполнения запроса пользователя (как правило, часть шаблона для обновления информации на странице).

function PostAction(URL, PostArray, SuccessFunction, ErrorFunction)
{
	$.ajax({
		type: 'POST',
		url: URL,
		data: PostArray,
		success: function(data) {
			try
			{	
				Data = eval('(' + data + ')');
				
				if ('Error' in Data)
				{
					if (Data['Error'] == 0)
					{
						SuccessFunction();
					}
					else
					{
						ErrorFunction(Data['Error']);
					}
				}
				else
				{			
					ErrorFunction('Ошибка связи с сервером');
				}
			}
			catch(error)
			{
				ErrorFunction('Ошибка связи с сервером');
			}
		},
		error: function(AjaxRequest, Status)
		{
			switch (Status)
			{
				case 'timeout':
				ErrorFunction('Таймаут связи с сервером');
				break;
				case 'error':
				ErrorFunction('Ошибка связи с сервером');
				break;
				default:
				ErrorFunction('Ошибка связи с сервером');
				break;
			}
		}
	});
}


Админка


Если честно, то писать админки к сайтам я очень не люблю. Логика простая: зачем писать админку, когда можно редактировать данные через phpmyadmin. На начальном этапе такое еще может работать, однако когда проект набирает обороты, админка становится очень нужна. Правда, каких-то функций в админке всегда не хватает, так как написать их довольно лениво :-)

Я долго думал, что можно поместить на главной странице админки, но, кроме небольшой статистической информации и пары кнопок, ничего не придумал. Хотя, как показывает практика, на эти данные внимания практически не обращаешь.



На странице “Компании” можно найти список всех хостеров и кнопку для добавления новой компании. У каждого хостера можно быстро добавить тариф на виртуальный сервер, выделенный сервер или скидку, а также отредактировать или удалить компанию. Также у тех хостеров, у которых есть партнерские программы, можно увидеть ссылку для перехода в биллинг.



Для добавления компании много времени не нужно, дата регистрации домена определяется автоматически, скриншот “подтягивается” со специализированного сервиса или его можно загрузить из файла. Из рутинных задач — поиск способов оплаты на сайте хостера и регистрация в биллинге для подключения партнерки.



Также, на странице хостера можно найти все его тарифы на виртуальные и выделенные сервера и быстро отредактировать их.

Страница с тарифами полностью аналогична нижнему блоку тарифов на странице хостера, поэтому скриншот этой страницы прикладывать не буду, а вот о странице для добавления тарифа расскажу поподробнее.



Эта версия страницы тарифов — уже третья по счету, первые две содержали гораздо меньшее количество параметров. На данный момент параметров довольно много, и добавлять тарифы довольно тяжело. Однако, при добавлении тарифов одного хостера очень помагает функция “Дублировать” браузера Google Chrome. У разных тарифов довольно часто совпадают несколько параметров. Например, виртуализация, страна и возможные ОС чаще всего для одной группы тарифов одинаковые. Поэтому самый простой вариант добавления таких тарифов — это заполнение одинаковых для всех тарифов параметров и дублирование вкладок в браузере.

Про раздел со скидками и новостями рассказывать не буду, там все довольно банально, покажу скриншоты:



Следом идет раздел для точек Looging Glass.


Изначально сервис Looking Glass я планировал сделать только для возможности проверки скорости скачивания файлов с виртуальных серверов хостеров и выполнения команд ping, tracert и mtr. Теперь эти точки служат еще и для проверки whois, чтобы обойти ограничение на количество запросов с одного IP адреса.



У любой точки Looking Glass нужно задать адрес, координаты, IP адреса и указать, какие сервисы предоставляет эта точка.

Раздел с доменными зонами — самый длинный из всех. Для составления такого списка был спарсен сайт iana, и для каждого домена был получен адрес его whois сервера.



После этого началось решение сложной задачи: для каждой зоны нужно было сделать парсинг whois. Сложность заключается в том, что whois для каждой зоны свой, поэтому для каждой зоны нужно определять, какая строка за что отвечает. На помощь приходит php функция strtotime, которая превращает почти любую строковую дату в unixtimestamp. Остается только указать, в какой строке написаны дата регистрации и дата окончания регистрации домена.



К сожалению, раздел с аукционами был закрыт через пару месяцев после открытия из-за низкого спроса, поэтому покажу только скриншот.


На этом всё! А вы готовы показать свои админки?



P. S. Спасибо andorro за помощь с подготовкой текста.

P. P. S. Благодарю хостинг-компанию VDSina.ru за поддержку проекта.
Теги:
Хабы:
Всего голосов 16: ↑11 и ↓5+6
Комментарии9

Публикации

Информация

Сайт
poiskvps.ru
Дата регистрации
Численность
2–10 человек

Истории