Ters DNS komut satırı yardımcı programı nedir?


Yanıtlar:


56

kazmak ve ev sahibi aradığınız olmalıdır;)

http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html

* Nix sisteminde şu komutu yapabilirsiniz: dig -x [address]

Alternatif olarak sadece dns sonucunu vermek +shortiçin digkomutun sonuna ekleyebilirsiniz .

Windows'ta kullanınnslookup

EDIT: nslookup da * nix sistemlerinde çalışır. Nslookup komutuyla ilgili daha fazla bilgi, bir süredir değiştirilmiş gibi görünüyor: http://linuxreviews.org/man/nslookup/


Aynı sözdizimi aynı zamanda drill, ldns'in yardımcı programıyla da çalışır , yanidrill -x 123.123.123.123
Tullo_x86

52

Açık * nix kullanabilirsiniz:

dig -x [address]

16
Bu kesinlikle en kolay yol gibi görünüyor. Rdns sonucundan başka bir şey döndürmemek için sonuna + kısa ekleyin. dig -x [address] +short
ColinM

3
Bu +shortbayrak gerçekten çok faydalı!
Neil

Bu IPv6 adresleriyle çalışır mı?
Geremia

@ColinM İyi nokta. Buna dayanarak cevabımı düzenledim. Teşekkürler!
Marc-Andre R.

Evet, @Geremia, Adrese göre man dig, addr noktalı ondalık gösterimde bir IPv4 adresi veya iki nokta üst üste IPv6 adresidir.
Ricardo,

8

Farkında olduğum Linux sistemlerinin çoğunda şunları kullanabilirsiniz:

 nslookup <ip-number EX: 127.0.0.1>

komut satırında çalışacak.

Bir düşünün, Windows XP'de nslookup kullanılamaz mı?


Evet kesinlikle. Ve Windows'un önceki sürümlerinde.
kubanczyk

4

Bu sorunun zaten bir milyon cevabı var ama bir tane daha ekleyeceğim. İşte kolayca kazmak ters DNS yapmak için yazdığım küçük bir fonksiyon. Bunu ~/.bashrcdosyanıza ekleyin , kabuğunuzu yeniden yükleyin ve ardından geriye doğru DNS aramaları yapabilirsiniz revdns 1.2.3.4:

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}"
}

Ters DNS aramaları işaretçi (PTR) kayıtlarını kontrol ederek yapılır. "1.2.3.4" için DNS'yi ters çevirmek istiyorsanız, "4.3.2.1.in-addr.arpa" için işaretçi kayıtlarına bakmanız gerekir. Benim işlevim bir IP adresi alır, sekizli dizilerinin sırasını değiştirir (yani 1.2.3.4'ten 4.3.2.1'den değiştirir) ve daha sonra digtarif ettiğim PTR aramasını yürütmek için kullanır .

Tabii ki, sadece nslookup 1.2.3.4sahipseniz kullanabilirsiniz , ancak bu kazı tabanlı çözümü tercih ediyorum çünkü nslookup tarafından sağlananlar yerine OS'nin DNS sunucularını kullanıyor (eğer isterseniz, ek kazı bayrakları ekleyebilirsiniz. aradığınızda revdnsve kazmaya geçecekler)


Onun yardımına göre dig -x dot-notation"geriye doğru aramalar için kısayol". Uzun versiyonun ne olacağını merak ediyordum. Açıkladığınız için teşekkürler! :)
webwurst

from man dig: -x kullanıldığında, name, class ve type argümanlarını sağlamaya gerek yoktur. dig otomatik olarak 94.2.0.192.in-addr.arpa gibi bir ad arar ve sorgu tipini ve sınıfını sırasıyla PTR ve IN olarak ayarlar.
Ricardo

3

Dig / host / nslookup öğesinin bunlar için standart araç olduğunun farkındayım, ancak işletim sisteminin çözünürlüğünü test etmek için bunları sürdürüyorum (aslında, nsswitch.conf dosyasının düzgün çalıştığını test etmek için):

gethostbyname:

#!/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";
}

gethostbyaddr:

#!/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";
}

örnek:

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

4
"getent ana bilgisayarını [IP veya HOSTNAME]" yapabilirsiniz
hayalci

Hmmm ... Araçları sadece orjinal olarak fonksiyonlarla oynamak için yazdım, o yüzden orada kayıp olmadı ama eğer alıyorum aracı hakkında bilseydim, kesinlikle onları sunucu arızalarına yapıştırmazdım. İşaretçi için teşekkürler.
jj33

-1: IPv4 ile sınırlıdırlar, gethostbyname, bulundukları zaman IPv6 adreslerini almaz ve gethostbyaddr IPv6 adreslerini kabul etmez.
bortzmeyer

Bu fonksiyonlar yıllarca eskimiş durumda. Bu yazıldığında bile eskiydiler. Perl ve diğer birçok dilde getaddrinfo ve getnameinfo kullanıyor olmalısınız.
Michael Hampton,

3

Windows’ta kullanma alışkanlığına girdim:

ping -a <ip address>

Bu aynı zamanda hostsdosyanızdaki ve WINS'teki verileri de yansıtacaktır .


2

"Ana bilgisayarı" dene

  • İleriye doğru ara host:

    $ 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
    
  • Şununla geriye doğru ara host:

    $ host 8.8.4.4
    4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com.
    

Dig benzer

  • İleriye doğru ara dig:

    $ dig google-public-dns-b.google.com. +short
    8.8.4.4
    
  • Şununla geriye doğru ara dig:

    $ dig -x 8.8.4.4 +short
    google-public-dns-b.google.com.
    

1

Eğer nslookup kullanıyorsanız, bu (söz konusu IP olarak 192.168.0.1 olduğu varsayılarak)

> set type=ptr
> 1.0.168.192.in-addr.arpa

DÜZENLEME: Geriye doğru aramanın, yalnızca IP için oluşturulan bir PTR kaydı varsa işe yaradığını ve aradığınız ana bilgisayar adını döndürmesinin garanti edilmediğini unutmayın. Tamamen sizin durumunuzda DNS'in nasıl yapılandırıldığına ve korunacağına bağlıdır.


5
nsloookup artık korunmuyor ve yazarları kazmayı tavsiye ediyor. Ayrıca, dig -x baytları kendiniz ters çevirmekten çok daha basittir.
bortzmeyer

Bunu bilmek güzel, giriş için çok teşekkürler! Eski alışkanlıklar zor ölür;)
squillman

1

Güç kalkanı:

[net.dns]::gethostentry("69.59.196.212").HostName

0

Eh, bazı samimi insanlar az önce nslookup komutunu verdi ve o haklı. Hem Unix hem de Windows üzerinde çalışır. Cevabınızı neden sildiğinizden emin değilim, ama haklısınız efendim.


Err, belki de değil.
Peter Turner

Evet, biraz hızlı yazıyorum ve bir kontrolden sonra cevabımın hepsinden emin değildim, sadece yazımı geri koydum ve daha fazla ayrıntı eklemek için düzenledim;)
Marc-Andre R.

Tamam, ama bu cevabı kabul etmiyorum. Ne yazık ki burada gerçek zamanlı olan Googley AJAX'ı bulamıyoruz.
Peter Turner

lol evet, her şeye sahip olamayız;) İyi günler, umarım size yardımcı olurum;)
Marc-Andre R.

0

Ben her gün nslookup için Windows için komut satırı kazığı (burada kullanılabilir: http://members.shaw.ca/nicholas.fong/dig/ ) tercih ederim .

DNS'yi bir Windows iş istasyonundan sınamak / yönetmek zorunda kalırsanız, bu aracı alın. Sonra:

C:\dig>dig -x <IP Address>

... ayrıca, c: \ dig'i yolunuza eklemeyi unutmayın!


0

Benim daha eksiksiz bir DNS geriye doğru aramaya başladım. Umarım bu, bu sayfanın gelecek izleyicileri için kullanışlı olacaktır.

for ip in {1..254..1}; do dig -x 1.1.1.$ip | grep $ip >> dns.txt; done;

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.