nslookup параметры командной строки
Использование утилиты nslookup
Утилита и одноименная команда nslookup позволяет обращаться к серверу имен (NS) из командной строки. С ее помощью можно выполнить проверку работы DNS-сервера и созданных в нем записей. В данной инструкции подробно разберем работу с данной утилитой.
Ввод команды и синтаксис
Для работы с утилитой необходимо открыть командную строку (cmd или powershell в Windows и unix-shell в UNIX). В системах на базе Windows утилита встроена, и мы можем работать с ней в любой момент. Для некоторых дистрибутивов Linux потребуется установка утилиты одной из команд:
yum install nslookup
apt-get install nslookup
* первая команда для систем на базе Red Hat, вторая — Debian.
Для выполнения запросов используем команду:
nslookup [опции] [сервер DNS]
Самый простой пример использования команды:
. позволит получить IP-адрес для узла dmosk.ru.
Утилита также поддерживает работу в интерактивном режиме — вводим команду:
После можно делать запросы.
Опции nslookup
При выполнении запросов мы можем использовать следующие опции:
Опция | Описание |
---|---|
Применяются для команды и интерактивного режима | |
all | Выводит параметры текущего запроса и настроек сервера DNS. |
class=X | Задает класс запроса, который указывает группу протоколов информации. Возможны варианты: 1. IN — Internet. Более, чем в 99% случаев используется он. 2. CHAOS, HESIOD — данные классы используются, крайне, редко. 3. ANY — запрос по всем возможным классам. |
d2 | Выводит полной информации по осуществлению запроса. |
nod2 | Обычный вывод (по умолчанию). |
debug | Покажет отладочную информацию по запросу. |
nodebug | Запрос без отображения отладочной информации (по умолчанию). |
defname | При запросе к хосту не FQDN автоматически подставит домен, который находится в настройках системы (DNS-суффикс). |
nodefname | Не подставлять домен. |
domain=’NAME’ | Задает домен, который должен быть подставлен к имени хоста (альтернатива DNS-суффиксу). |
querytype=TYPE | Указывает на тип запроса или тип записи, например, А, mx, txt и так далее. Аналогична опции type. |
recurse | Рекурсивный запрос (информация запрашивается у других серверов, если ее нет на используемом в запросе). |
norecurse | Запрет на использование рекурсивного запроса. |
retry=X | В случае долгого ответа, параметр позволяет указать количество повторов опроса. |
root | Назначает текущий DNS в качестве корневого сервера по умолчанию. |
root=NAME | Позволяет задать корневой сервер. |
search | Добавлять DNS-имена к имени хоста из списка доменов (сам список задается опцией srchlist). |
nosearch | Не использовать список доменов для подстановки к имени хоста. |
srchlist=N1[/N2/. /N6] | Задает список доменов, который нужно подставлять при использовании опции search. |
timeout=X | Задает время в секундах, сколько утилита должна ждать ответа от сервера. |
type=X | Указывает на тип записи, которую будем опрашивать. Например, для получения записи AAAA мы вводим опцию type=АААА. |
vc | Позволяет использовать виртуальную схему при отправке запросов. К сожалению, я не нашел подробного описания, что это значит. |
novc | Не использовать виртуальную схему при отправке запросов. |
Работают только в интерактивном режиме (задается без SET) | |
lsserver NAME | Задает имя сервера DNS. При определении имени NAME используется начальная настройка DNS. |
server NAME | Задает имя сервера DNS. При определении имени NAME используется текущее значение для DNS. |
Также мы можем вызвать описание для nslookup.
nslookup
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
Отображает сведения, которые можно использовать для диагностики инфраструктуры системы доменных имен (DNS). Перед использованием этого средства необходимо ознакомиться с принципами работы DNS. Программа командной строки Nslookup доступна, только если установлен протокол TCP/IP.
Программа командной строки Nslookup имеет два режима: Интерактивные и неинтерактивные.
Если необходимо выполнить поиск только одного фрагмента данных, рекомендуется использовать Неинтерактивный режим. В качестве первого параметра введите имя или IP-адрес компьютера, который требуется найти. Во втором параметре введите имя или IP-адрес сервера DNS-имен. Если опустить второй аргумент, nslookup использует сервер DNS-имен по умолчанию.
Если необходимо найти более одного фрагмента данных, можно использовать интерактивный режим. Введите дефис (-) для первого параметра, а также имя или IP-адрес сервера DNS-имен для второго параметра. Если оба параметра не указаны, средство использует сервер DNS-имен по умолчанию. При использовании интерактивного режима можно:
Прерывать Интерактивные команды в любое время, нажав клавиши CTRL + B.
Для выхода введите Exit.
Синтаксис
Параметры
Параметр | Описание |
---|---|
выход из nslookup | Выход из программы командной строки Nslookup. |
nslookup Finger | Подключается к серверу finger на текущем компьютере. |
nslookup help | Отображает краткую сводку по подкомандам. |
nslookup ls | Выводит сведения для домена DNS. |
nslookup lserver | Изменяет сервер по умолчанию на указанный домен DNS. |
nslookup root | Изменяет сервер по умолчанию на сервер для корня пространства имен домена DNS. |
nslookup server | Изменяет сервер по умолчанию на указанный домен DNS. |
nslookup set | Изменяет параметры конфигурации, влияющие на работу функций Lookup. |
nslookup set all | Выводит текущие значения параметров конфигурации. |
nslookup set class | Изменяет класс запроса. Класс указывает группу протоколов сведений. |
nslookup set d2 | Включает или выключает режим полной отладки. Выводятся все поля каждого пакета. |
nslookup set debug | Включает или выключает режим отладки. |
nslookup set domain | Изменяет имя домена DNS по умолчанию на указанное имя. |
nslookup set port | Изменяет порт сервера DNS-имен TCP/UDP по умолчанию на указанное значение. |
nslookup set querytype | Изменяет тип записи ресурса для запроса. |
nslookup set recurse | Сообщает серверу DNS-имен о необходимости запрашивать другие серверы, если эти сведения отсутствуют. |
nslookup set retry | Задает число повторных попыток. |
nslookup set root | Изменяет имя корневого сервера, используемого для запросов. |
nslookup set search | Добавляет DNS-имена доменов в списке поиска доменов DNS в запрос, пока не будет получен ответ. Это применимо, когда набор и запрос уточняющего запроса содержат по крайней мере одну точку, но не заканчиваются точкой в конце. |
nslookup set srchlist | Изменяет имя домена DNS по умолчанию и список поиска. |
nslookup set timeout | Изменяет начальное число секунд ожидания ответа на запрос. |
nslookup set type | Изменяет тип записи ресурса для запроса. |
nslookup set vc | Указывает, следует ли использовать виртуальный канал при отправке запросов на сервер. |
nslookup view | Сортирует и перечисляет выходные данные предыдущей подкоманды Ls или команд. |
Remarks
Если компутертофинд является именем и не имеет точки в конце, имя домена DNS по умолчанию добавляется к имени. Это поведение зависит от состояния следующих подкоманд Set : domain, срчлист, дефнаме и Search.
Если запрос на поиск завершается неудачей, программа командной строки выдает сообщение об ошибке, в том числе:
Команда nslookup, получение информации от DNS
Команда nslookup — инструмент сетевого администрирования для запросов в доменной системе имен (DNS) с целью получения доменного имени, IP-адреса или другой информации из записей DNS.
Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.
Команда nslookup может работать в интерактивном и неинтерактивном режимах. Интерактивный режим позволяет пользователю в режиме диалога отправлять DNS-серверу запросы о различных узлах и доменах. Неинтерактивный режим позволяет отправить один запрос об одном узле или домене.
Синтаксис команды nslookup
Наиболее распространенные опции и типы аргументов мы рассмотрим ниже в соответствующих примерах.
Получение IP-адреса домена
Если указать в качестве аргумента команды nslookup доменное имя, она возвращает его «запись A» (A — address, IP-адрес).
Здесь поле Server означает IP-адрес DNS-сервера, а затем выводится информация об IP-адресе домена «yandex.ru».
Авторитативный и неавторитативный ответы
В приведенном результате присутствует фраза «Non- Authoritative Answer» (неавторитативный ответ).
Авторитативным считается ответ от DNS-сервера, на котором есть полная информация о зоне домена. Во многих случаях на DNS-серверах такой информации нет, они хранят кэш с результатами прошлых запросов, на которые был получен авторитативный ответ. Когда такой сервер получает запрос, он осуществляет поиск в файле кэша и при наличии необходимых данных отправляет их как неавторитативный ответ, как в рассматриваемых нами примерах.
Запрос записи MX
В рассмотренном выше примере для домена «redhat.com» есть 2 записи MX. Число рядом с именем сервера (5, 10) означает его приоритет. Чем меньше число, тем выше приоритет. То есть при отправке письма на адрес «@redhat.com» сначала будет использоваться сервер mx1.redhat.com, а если он недоступен — mx2.redhat.com.
Запрос записи NS
Запрос записи SOA
Просмотр всех имеющихся записей DNS
Обратный поиск DNS
Если вместо имени указать в качестве аргумента IP-адрес, будет выполнен обратный поиск DNS:
Использование конкретного DNS-сервера
Для разрешения доменного имени можно использовать конкретный сервер имен (в данном случае ns1.redhat.com):
Обратите внимание, что в результате отсутствует фраза «Non-authoritative answer», так как ns1.redhat.com обладает всей информацией о зоне для redhat.com.
Изменение номера порта
Изменение интервала ожидания ответа
Режим отладки
В режиме отладки при поиске выводится информация о пакетах.
Интерактивный режим
Для входа в интерактивный режим запустите команду nslookup без опций. Далее можно вводить необходимые имена или адреса, а также устанавливать парметры при помощи команды set, например, следующие команды интерактивного режима:
возвращают результат, аналогичный команде
Конечно, при поиске записей для одного имени использовать интерактивный режим бессмысленно. Но при необходимости работы с большим количеством записей он очень удобен, так как позволяет работать в режиме диалога.
Заключение
Мы рассмотрели основы работы с командой nslookup, а также основные типы записей DNS. Для более подробной информации о команде и ее опциях можно обратиться к соответствующей man-странице.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
При запуске nslookup без параметров, утилита переходит в интерактивный режим, ожидая ввод команд пользователя. Ввод знака вопроса или help позволяет отобразить справку о внутренних командах и опциях nslookup :
(идентификаторы отображаются в верхнем регистре, квадратные скобки «[]» обозначают необязательные параметры)
Примеры использования команды NSLOOKUP
При запуске с некоторыми из выше перечисленных параметров, команда nslookup выполняется в не интерактивном режиме без диалога с пользователем:
Пример отображаемых данных:
Сервер: 208.67.220.220
Не заслуживающий доверия ответ:
vk.com internet address = 87.240.131.119
vk.com internet address = 87.240.131.99
vk.com nameserver = ns2.vkontakte.ru
vk.com nameserver = ns4.vkontakte.ru
vk.com nameserver = ns1.vkontakte.ru
vk.com nameserver = ns4.vkontakte.ru
vk.com nameserver = ns2.vkontakte.ru
vk.com nameserver = ns1.vkontakte.ru
ns1.vkontakte.ru internet address = 93.186.237.2
ns2.vkontakte.ru internet address = 93.186.224.100
Для разных версий nslookup и разных DNS-серверов, обслуживающих запрос, отображаемая информация может незначительно отличаться. Тот же запрос, сформированный англоязычной версией утилиты nslookup.exe и направленный на обработку DNS-серверу компании Google приведет к отображению следующих данных:
Non-authoritative answer:
vk.com internet address = 87.240.131.120
vk.com internet address = 87.240.143.244
vk.com
primary name server = ns1.vkontakte.ru
responsible mail addr = ncc.vkontakte.ru
serial = 2013100501
refresh = 3600 (1 hour)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 900 (15 mins)
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:901
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:902
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:903
vk.com nameserver = ns1.vkontakte.ru
vk.com nameserver = ns2.vkontakte.ru
vk.com nameserver = ns4.vkontakte.ru
vk.com MX preference = 10, mail exchanger = mail.vk.com
vk.com text =»v=spf1 ip4:93.186.224.0/20 ip4:87.240.128.0/18 mx include:aspmx.googlemail.com
Сообщение «Не заслуживающий доверия ответ:» (Non-authoritative answer: ) говорит о том, что выполняющий запрос DNS-сервер, не является владельцем зоны vk.com т.е. записи для узла vk.com в его базе отсутствуют, и для разрешения имени использовался рекурсивный запрос к другому DNS-серверу. Если отправить запрос DNS-серверу ns1.vkontakte.ru, то будет получен авторитетный ответ (authoritative answer) :
Server: ns1.vkontakte.ru
Address: 93.186.237.2
primary name server = ns1.vkontakte.ru
responsible mail addr = ncc.vkontakte.ru
serial = 2013100501
refresh = 3600 (1 hour)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 900 (15 mins)
vk.com internet address = 87.240.131.118
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:904
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:905
vk.com AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:906
vk.com nameserver = ns4.vkontakte.ru
vk.com nameserver = ns1.vkontakte.ru
vk.com nameserver = ns2.vkontakte.ru
vk.com MX preference = 10, mail exchanger = mail.vk.com
vk.com text = «v=spf1 ip4:93.186.224.0/20 ip4:87.240.128.0/18 mx include:aspmx.googlemail.com
all»
ns4.vkontakte.ru internet address = 93.186.239.253
ns4.vkontakte.ru AAAA IPv6 address = 2a00:bdc0:ff:4::2
ns1.vkontakte.ru internet address = 93.186.237.2
ns1.vkontakte.ru AAAA IPv6 address = 2a00:bdc0:ff:1::2
ns2.vkontakte.ru internet address = 93.186.224.100
ns2.vkontakte.ru AAAA IPv6 address = 2a00:bdc0:ff:2::2
mail.vk.com internet address = 93.186.236.94
Использование опции отладки (debug) позволяет получить дополнительную информацию, содержащуюся в заголовках запросов клиента и ответов сервера (время жизни, флажки, типы записей и т.п.): > server ns1.vkontakte.ru
————
opcode = QUERY, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 1, additional = 0
ns1.vkontakte.ru, type = A, >
AUTHORITY RECORDS:
-> (root)
ttl = 440 (7 mins 20 secs)
primary name server = a.root-servers.net
responsible mail addr = nstld.verisign-grs.com
serial = 2013101600
refresh = 1800 (30 mins)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 86400 (1 day)
opcode = QUERY, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 1, authority records = 0, additional = 0
ns1.vkontakte.ru, type = A, >
ANSWERS:
-> ns1.vkontakte.ru
internet address = 93.186.237.2
ttl = 6350 (1 hour 45 mins 50 secs)
————
Default Server: ns1.vkontakte.ru
Address: 93.186.237.2
> vk.com
Server: ns1.vkontakte.ru
Address: 93.186.237.2
opcode = QUERY, rcode = REFUSED
header flags: response, want recursion
questions = 1, answers = 0, authority records = 0, additional = 0
opcode = QUERY, rcode = NOERROR
header flags: response, auth. answer, want recursion
questions = 1, answers = 11, authority records = 0, additional = 7
vk.com, type = ANY, >
ANSWERS:
-> vk.com
ttl = 900 (15 mins)
primary name server = ns1.vkontakte.ru
responsible mail addr = ncc.vkontakte.ru
serial = 2013100501
refresh = 3600 (1 hour)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 900 (15 mins)
-> vk.com
internet address = 87.240.131.99
ttl = 900 (15 mins)
-> vk.com
internet address = 87.240.131.119
ttl = 900 (15 mins)
-> vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:901
ttl = 900 (15 mins)
-> vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:902
ttl = 900 (15 mins)
-> vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:903
ttl = 900 (15 mins)
-> vk.com
nameserver = ns1.vkontakte.ru
ttl = 900 (15 mins)
-> vk.com
nameserver = ns2.vkontakte.ru
ttl = 900 (15 mins)
-> vk.com
nameserver = ns4.vkontakte.ru
ttl = 900 (15 mins)
-> vk.com
MX preference = 10, mail exchanger = mail.vk.com
ttl = 900 (15 mins)
-> vk.com
text = «v=spf1 ip4:93.186.224.0/20 ip4:87.240.128.0/18 mx include:aspmx.googlemail.com
all»
ttl = 900 (15 mins)
ADDITIONAL RECORDS:
-> ns1.vkontakte.ru
internet address = 93.186.237.2
ttl = 9000 (2 hours 30 mins)
-> ns1.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:1::2
ttl = 9000 (2 hours 30 mins)
-> ns2.vkontakte.ru
internet address = 93.186.224.100
ttl = 9000 (2 hours 30 mins)
-> ns2.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:2::2
ttl = 9000 (2 hours 30 mins)
-> ns4.vkontakte.ru
internet address = 93.186.239.253
ttl = 9000 (2 hours 30 mins)
-> ns4.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:4::2
ttl = 9000 (2 hours 30 mins)
-> mail.vk.com
internet address = 93.186.236.94
ttl = 900 (15 mins)
————
vk.com
ttl = 900 (15 mins)
primary name server = ns1.vkontakte.ru
responsible mail addr = ncc.vkontakte.ru
serial = 2013100501
refresh = 3600 (1 hour)
retry = 900 (15 mins)
expire = 604800 (7 days)
default TTL = 900 (15 mins)
vk.com
internet address = 87.240.131.99
ttl = 900 (15 mins)
vk.com
internet address = 87.240.131.119
ttl = 900 (15 mins)
vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:901
ttl = 900 (15 mins)
vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:902
ttl = 900 (15 mins)
vk.com
AAAA IPv6 address = 2a00:bdc0:3:103:1:0:403:903
ttl = 900 (15 mins)
vk.com
nameserver = ns1.vkontakte.ru
ttl = 900 (15 mins)
vk.com
nameserver = ns2.vkontakte.ru
ttl = 900 (15 mins)
vk.com
nameserver = ns4.vkontakte.ru
ttl = 900 (15 mins)
vk.com
MX preference = 10, mail exchanger = mail.vk.com
ttl = 900 (15 mins)
vk.com
text = «v=spf1 ip4:93.186.224.0/20 ip4:87.240.128.0/18 mx include:aspmx.googlemail.com
all»
ttl = 900 (15 mins)
ns1.vkontakte.ru
internet address = 93.186.237.2
ttl = 9000 (2 hours 30 mins)
ns1.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:1::2
ttl = 9000 (2 hours 30 mins)
ns2.vkontakte.ru
internet address = 93.186.224.100
ttl = 9000 (2 hours 30 mins)
ns2.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:2::2
ttl = 9000 (2 hours 30 mins)
ns4.vkontakte.ru
internet address = 93.186.239.253
ttl = 9000 (2 hours 30 mins)
ns4.vkontakte.ru
AAAA IPv6 address = 2a00:bdc0:ff:4::2
ttl = 9000 (2 hours 30 mins)
mail.vk.com
internet address = 93.186.236.94
ttl = 900 (15 mins)
Как пользоваться nslookup
Иногда может возникнуть необходимость проверить работоспособность DNS, посмотреть как быстро работает сервер, увидеть IP адрес и скорость его получения для определенного домена. Для этого используется утилита nslookup. С помощью нее вы можете не только получить IP адрес по домену, но и выполнить обратное преобразование, а также проверить установлены все необходимые записи DNS.
В этой статье мы рассмотрим как пользоваться nslookup, что делает эта утилита, а также ее синтаксис и опции.
Как работает DNS?
Служба DNS позволяет преобразовывать сложные для запоминания ip адреса в простые и легкие доменные имена, которые намного проще запомнить. Если не вдаваться в подробности, то существует сеть DNS серверов, на которых хранится вся необходимая информация об IP адресах и соответствующих им доменах. Время от времени они обмениваются между собой информацией, чтобы база данных была полной и актуальной.
Когда компьютеру нужно обратиться к какому-либо сайту по домену, он запрашивает его IP адрес у DNS сервера, а затем сохраняет его в локальном кэше. Но DNS запросы могут отсылаться не только автоматически, их может формировать и отправлять утилита nslookup в Linux или Windows.
Команда nslookup
Перед тем как мы перейдем дальше, к практике и примерам, давайте рассмотрим синтаксис и опции утилиты. Синтаксис достаточно прост:
$ sudo nslookup опции домен сервер
Самое интересное, что команду можно выполнять не только в обычном, но и в интерактивном режиме, если запустить ее без параметров. А теперь перейдем ближе к самим примерам как работает команда nslookup linux.
Как пользоваться nslookup?
Сначала посмотрим ip адрес для losst.ru. Для этого не нужно передавать никаких дополнительных параметров, только само доменное имя:
Иногда вы можете получить в ответе утилиты сообщение «Non-authoritative answer». Ответ считается авторитетным, только если наш DNS сервер имеет полную информацию о зоне, для рассматриваемой области. Чаще всего, у нашего сервера будет не вся информация, а кэш последнего ответа от авторитетного сервера. Такая информация считается не авторитетной, хотя она была получена из авторитетного источника, но сам DNS сервер таковым не считается.
Также вы можете выполнить обратное преобразование IP адреса в домен. Для этого передайте утилите IP адрес:
Первоисточник информации о домене, это его ns сервера. Вы можете их получить, использовав команду с опцией type=ns:
Команда выведет список используемых серверов имен, например, у нас это ns1.nameself.com. Обычно это от двух до четырех серверов. Если есть авторитетный источник для получения информации, то он указывается в нижней части вывода. Например, если мы запросим информацию у сервера имен ns1.nameself.com, то это уже будет авторитетный ответ:
nslookup losst.ru ns1.nameself.com
Еще вы можете получить MX запись для домена, для этого нужно установить тип запроса в mx:
Здесь будут отображены все настроенные почтовые серверы, у каждого сервера есть свой приоритет, например, 10, 15 или 5. Чем меньше число, тем выше приоритет адреса.
SOA или Start Of Authority предоставляет техническую информацию о домене, для получения этого поля используйте тип запроса soa:
Здесь будет выведена такая информация:
Также возможно использование nslookup для просмотра всех доступных записей DNS:
Здесь отображается сообщение, отправленное на сервер и полученный от него ответ. Если ip адресов несколько, то система может отобразить ttl для каждого из них. Некоторые крупные сайты размещены на нескольких серверах, это сделано для противостояния DDoS атакам.
Команда nslookup linux может использоваться и в интерактивном режиме, для этого нужно выполнить ее без параметров:
Дальше просто наберите имя домена, чтобы узнать его IP:
С помощью команды set вы можете задавать различные параметры, например, порт, или тип запроса:
set port=53
set type=mx
Чтобы завершить работу с утилитой, используйте команду exit.
Выводы
В этой статье мы рассмотрели как пользоваться nslookup, утилитой для просмотра DNS записей для домена. Она может быть очень полезной для веб-мастеров и системных администраторов, поскольку очень просто предоставляет всю необходимую информацию. Если у вас остались вопросы, спрашивайте в комментариях!