DNS: скрипт для проверки правильности разрешения доменного имени

Мы представляем простой сценарий VBS, который позволяет избежать многократного запуска команды nslookup из Windows для проверки правильности разрешения доменного имени вашего веб-сайта основными итальянскими и зарубежными серверами имен.

В этой статье мы опубликовали краткое руководство о том, как работают DNS-серверы, объясняя, когда может быть полезно их заменить и как проверить их работоспособность.

Если вы управляете веб-сайтом, может быть полезно периодически проверять правильность разрешения вашего доменного имени основными DNS-серверами различных интернет-провайдеров. Короче говоря, важно убедиться, что правильный IP-адрес связан с адресом www.nomedelsito.it.

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

Предлагаемый нами сценарий можно использовать, просто скопировав его в текстовый файл, а затем переименовав этот файл с расширением .vbs: ‘////// НАЧАТЬ ДАННЫЕ ДЛЯ ИЗМЕНЕНИЯ ////////// /// ///////////// strDominio = «www.sitename.xx» strIP = «127.0.0.1» strDNS = array («151.99.125.1», «151.99.125.2», «151.99 .125.3″ ,»212.216.112.112″,»151.99.0.100″, _»193.70.192.100″,»195.210.91.100″,»212.245.158.66″, _»8.8.8.8″,»8.8.4.4″,»208.22.2″ ,»208.67.220.220″,»198.153.192.1″,»198.153.194.1″,»156.154.70.22″,»156.154.71.22») ‘////// КОНЕЦ ИЗМЕНЯЕМЫХ ДАННЫХ ////// /////////////////////// strReport = «» string = «Server:» lungh_array = ubound (strDNS) Set objShell = CreateObject («WScript.Shell») For i = 0 to lungh_array strCommand = «nslookup» & strDominio & «» & strDNS (i) Установить objExecObject = objShell.Exec (strCommand) Делать, пока не objExecObject.StdOut.AtEndOfStream strResults = objExecObeadAll instr.(strResults, strIP) = 0, затем strReport = strReport и strDNS (i) servername = in str (strResults, string) если servername > 0, то servername = servername + len (string) acapo = instr (servername, strResults, vbcrlf) servername = trim (mid (strResults, servername, acapo-servername)) strReport = strReport & «( » & servername & «)» end if strReport = strReport & vbcrlf end if Next if strReport = «» then WScript.Echo «Verified» & lungh_array + 1 & «nameservers.» & vbcrlf & «Все DNS-серверы ответили должным образом и разрешились правильно» & strDomain & «in» & strIP & «.» else strReport = «Verified» & lungh_array + 1 & «nameservers.» & vbcrlf & «Следующие DNS-серверы неожиданно ответили:» & vbcrlf & strReport & vbcrlf & «Доменное имя» & strDominio & «не удалось разрешить в «& полоска &». » WScript.Echo strReport end if Работа скрипта проста для понимания. Единственные изменения, которые необходимо внести в код скрипта, заключаются в изменении значений переменных strDominio, strIP и, возможно, массива strDNS.

Первый необходимо инициализировать, указав проверяемое доменное имя, а для strIP должен быть назначен (заменить 127.0.0.1) правильный IP, т.е. правильный адрес, который серверы имен должны возвращать в ответ на каждый запрос по указанному доменному имени.

Массив strDNS уже инициализирован и, как видите, мы уже указали многочисленные общедоступные DNS некоторых итальянских и неитальянских провайдеров. Конечно, вы можете расширить список серверов имен или удалить те, которые вам не нужны, в соответствии с вашими потребностями.

В нашем случае после корректной установки первых двух переменных, сохранения скрипта и двойного клика по файлу VBS мы получили следующее сообщение:


Если один или несколько DNS-серверов не разрешают указанный мнемонический адрес ожидаемым образом (например, www.ilsoftware.it), сценарий VBS покажет сообщение, подобное следующему:

Цикл for (строка 14) обеспечивает вызов команды nslookup для каждого DNS, указанного в массиве strDNS.

То, что возвращает команда nslookup, помещается в переменную strResults.

Следующие два ifs (строки 22-32) в первую очередь проверяют, присутствует ли IP, указанный в переменной strIP, в ответе от nslookup (строка 22), а затем извлекают имя DNS-сервера (строки 24-29).

Переменная strReport записывает все DNS, которые могут отвечать неправильно.

Очевидно, что сценарий VBS можно улучшить, разрешив, при желании, вставку значений первых двух переменных из диалогового окна и описав сообщение об ошибке, возвращаемое различными серверами имен.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.