Pull to refresh
0
Поиск VPS
Помогаем найти самый лучший виртуальный сервер

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

Reading time 5 min
Views 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 за поддержку проекта.
Tags:
Hubs:
+6
Comments 9
Comments Comments 9

Articles

Information

Website
poiskvps.ru
Registered
Employees
2–10 employees