что такое обратная утилита командной строки dns?

<p>какая команда для поиска имени компьютера по ip-адресу?</p><p>я всегда забываю, что это за команда, но я знаю, что она существует в windows, и я предполагаю, что она существует в командной строке * nix.</p>

<p><strong> копать </strong> и <strong> хост </strong> должен быть тем, что вы ищете;)</p><p> <a href="http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html">http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html</a> </p><p><strong> в системе * nix вы можете выполнить эту команду: </strong> <code>dig -x [address]</code></p><p>в качестве альтернативы вы можете добавить <code>+short</code> в конце команды <code>dig</code> для вывода только результата dns.</p><p><strong> в windows </strong> используйте <code>nslookup</code></p><p>правка: nslookup тоже работает на * nix системах. более подробная информация о команде nslookup, кажется ли, что она была заменена некоторое время: <a href="http://linuxreviews.org/man/nslookup/">http://linuxreviews.org/man/nslookup/</a> </p>

<p>на * nix вы можете использовать:</p><pre><code>dig -x [address] </code></pre>

<p>на большинстве известных мне linux-систем вы можете использовать:</p><pre><code> nslookup <ip-number ex: 127.0.0.1> </code></pre><p>будет работать в командной строке.</p><p>если подумать, разве nslookup не доступен в windows xp?</p>

<p>на этот вопрос уже есть миллион ответов, но я добавлю еще один. вот небольшая функция, которую я написал для легкого выполнения обратного dns с dig. добавьте это к вашему <code>~/.bashrc</code>, перезагрузите shell, и затем вы можете выполнить обратный поиск dns с помощью <code>revdns 1.2.3.4</code>:</p><pre><code>function revdns() { octets="" addr="in-addr.arpa" # split the ip address into an array of octets ifs="." read -r -a octets <<< "$1" # add each octet to our $addr string in reverse order for octet in "${octets[@]}"; do addr=$octet"."$addr done # run a dns pointer lookup with dig # +short makes dig's output very terse (un-verbose) # "${@:2}"` passes any extra params from this command to dig dig ptr +short $addr "${@:2}" } </code></pre><p>обратный поиск в dns выполняется путем проверки записей указателя (ptr). если вы хотите сделать обратный dns для "1.2.3.4", вы должны искать записи указателей для "4.3.2.1.in-addr.arpa". моя функция получает ip-адрес, меняет порядок октетов (то есть меняет его с 1.2.3.4 на 4.3.2.1) и затем использует <code>dig</code> для выполнения поиска ptr, который я только что описал.</p><p>вы можете, конечно, просто использовать <code>nslookup 1.2.3.4</code> если у вас есть, но я предпочитаю это решение на основе dig, потому что оно использует dns-серверы ос вместо предоставленных nslookup (если вы хотите, между прочим, вы можете добавить дополнительные флаги dig при вызове <code>revdns</code>, и они будут переданы в dig)</p>

<h1>попробуйте "хост"</h1><ul> <li> <p>прямой поиск с помощью <code>host</code>:</p> <pre><code>$ host google-public-dns-b.google.com. google-public-dns-b.google.com has address 8.8.4.4 google-public-dns-b.google.com has ipv6 address 2001:4860:4860::8844   обратный поиск с помощью host: $ host 8.8.4.4 4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com. </code></pre></li> </ul><h2>похож на dig</h2><ul> <li> <p>прямой поиск с помощью <code>dig</code>:</p> <pre><code>$ dig google-public-dns-b.google.com. +short 8.8.4.4   обратный поиск с помощью dig: $ dig -x 8.8.4.4 +short google-public-dns-b.google.com. </code></pre></li> </ul>

<p>я хорошо знаю, что dig/host/nslookup являются стандартными инструментами для них, но я оставляю их для тестирования разрешения ос (по сути, для проверки правильности работы nsswitch.conf):</p><p><strong>gethostbyname:</strong></p><pre><code>#!/usr/bin/perl use socket; my @t = gethostbyname($argv[0]); print "$name = $t[0]n"; shift(@t); print "$aliases = $t[0]n"; shift(@t); print "$addrtype = $t[0]n"; shift(@t); print "$length = $t[0]n"; shift(@t); foreach (@t) { print " = ", inet_ntoa($\_), "\n"; } </code></pre><p><strong>gethostbyaddr:</strong></p><pre><code>#!/usr/bin/perl use socket; my @t = gethostbyaddr(inet\_aton($argv[0]), af_inet); print "$name = $t[0]n"; shift(@t); print "$aliases = $t[0]n"; shift(@t); print "$addrtype = $t[0]n"; shift(@t); print "$length = $t[0]n"; shift(@t); foreach (@t) { print " = ", inet_ntoa($\_), "\n"; } </code></pre><p>пример:</p><pre><code>g3 0 /home/jj33/swap > gethostbyname www.google.com $name = www.l.google.com $aliases = www.google.com $addrtype = 2 $length = 4 = 72.14.205.147 = 72.14.205.103 = 72.14.205.104 = 72.14.205.99 g3 0 /home/jj33/swap > gethostbyaddr 72.14.205.147 $name = qb-in-f147.google.com $aliases = $addrtype = 2 $length = 4 = 72.14.205.147 </code></pre>

<p>в windows я привык к использованию:</p><pre><code>ping -a <ip address> </code></pre><p>поскольку это также будет отражать данные из вашего файла <code>hosts</code> и wins и т. д.).</p>

<p>если вы используете nslookup, то именно это (при условии 192.168.0.1 в качестве рассматриваемого ip)</p><pre><code>> set type=ptr > 1.0.168.192.in-addr.arpa </code></pre><p><strong>edit:</strong> помните, что обратный поиск работает только в том случае, если для ip-адреса создана запись ptr и не гарантировано возвращение искомого имени хоста. полностью зависит от того, как dns настроен и поддерживается в вашей ситуации.</p>

<p>powershell:</p><pre><code>[net.dns]::gethostentry("69.59.196.212").hostname </code></pre>

<p>я предпочитаю командную строку dig для windows (доступна здесь: <a href="http://members.shaw.ca/nicholas.fong/dig/">http://members.shaw.ca/nicholas.fong/dig/</a> ) nslookup в любой день.</p><p>если вам нужно протестировать/администрировать dns с рабочей станции windows, воспользуйтесь этим инструментом. затем:</p><pre><code>c:\dig>dig -x <ip address> </code></pre><p>... также не забудьте добавить c:\dig к своему пути!</p>

<p>ну, какой-то дружелюбный человек только что написал команду nslookup, и он прав. работает как на unix, так и на windows. не уверен, почему вы удалили свой ответ, но вы правы, сэр.</p>

<p>это мой взгляд на более полный обратный поиск в dns. надеюсь, что это пригодится будущим зрителям этой страницы.</p><pre><code>for ip in {1..254..1}; do dig -x 1.1.1.$ip | grep $ip >> dns.txt; done; </code></pre>