Если у меня настроено несколько хостов на одной машине (а-ляVirtualHosts apache), как мне выполнить поиск по IP-адресу и найти все домены, настроенные для доступа к нему?
Например, у меня есть несколько веб- и почтовых доменов, подключенных к моему серверу. Как мне найти все домены, которые указывают на него?
Возможно ли это вообще?
У меня есть записи DNS A для всех доменов, которыми я владею, плюс я знаю, что домены некоторых друзей указывают на мой сервер. Я хотел бы узнать, если люди, янезнаю, что они тоже указывают туда. (Или если кто-то перенаправил свой домен в другое место, и я могу удалить его «старый» веб-сайт со своего сервера.)
решение1
Не совсем, нет. Все дело в разнице между прямым и обратным DNS-поиском.
Прямой просмотр — это стандартный поиск имя->IP. Таким образом, вам придется знать все имена заранее.
Вам нужно выполнить поиск IP->имя, но каким-то образом получить все имена, которые вы применили в конфигурации Apache и в DNS в виде записей A (или CNAMES, или как-то еще).
Вероятно, вы обнаружите, что выполнение обратного поиска (например, dig @nameserver $ip -x) вернет имя хоста, присвоенное этому IP людьми, которые владеют этим сетевым блоком, который может быть вашим провайдером. У него может быть имя вроде 45-23-45-231.big-isp.com, что не скажет вам многого. И, что самое важное, есть только одна обратная запись, но потенциально много прямых.
Полагаю, все сводится к вопросу: как обратная зона узнает о записях в прямой зоне? В большинстве установок прямая зона доступна клиенту для внесения изменений, но обратная зона поддерживается владельцами сетевого блока. Двум системам не нужно ничего знать друг о друге, чтобы функционировать.
решение2
Сделать это с помощью самого протокола DNS невозможно, поскольку обычно PTR
для каждого IP-адреса существует только одна запись, хотя на этот IP-адрес может A
указывать множество записей.
Однако некоторые компании (например,http://www.ip-adress.com/) сумели составить базы данных, содержащие то, что вам нужно, сохранив результаты целого ряда DNS-поисков, а затем предложив обратный запрос в свои собственные базы данных.
Однако эти базы данных не могут быть окончательными, они не могут гарантировать, что знают о каждом возможном домене, которыймощьслучайно указывают на этот IP-адрес — они могут записывать только данные DNS для тех доменных имен, которые они действительно искали.
решение3
Единственный способ сделать это — иметь данные о содержании доменного имени, которое вы хотите проверить.
Используя этот контент, вы можете разработать рекурсивный скрипт для поиска имени хоста относительно вашего IP-адреса (рекурсивный из-за возможной проверки CNAME).
Чтобы получить данные о каком-либо партнере по доменному имени, вы можете запросить статус вторичный и получить ДАННЫЕ с помощью dig -t axfr.
решение4
Вам следует проверитьРобТекс Не самый лучший веб-дизайн, но очень полезный! Вы можете узнать все DNS, связанные с IP.
Конечно, как объяснил Альнитак,
Сделать это с помощью самого протокола DNS невозможно.
Это означает, что этот сайт — просто огромная база данных большинства DNS/IP-серверов. Это довольно эффективно, но не на 100% исчерпывающе.