Jakie jest polecenie, aby znaleźć nazwę komputera, biorąc pod uwagę jego adres IP?
Zawsze zapominam, co to za polecenie, ale wiem, że istnieje ono w systemie Windows i zakładam, że istnieje ono w wierszu poleceń * nix.
Jakie jest polecenie, aby znaleźć nazwę komputera, biorąc pod uwagę jego adres IP?
Zawsze zapominam, co to za polecenie, ale wiem, że istnieje ono w systemie Windows i zakładam, że istnieje ono w wierszu poleceń * nix.
Odpowiedzi:
kop i host powinny być tym, czego szukasz;)
http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html
W systemie * nix możesz wykonać następujące polecenie:
dig -x [address]
Alternatywnie możesz dodać +short
na końcu dig
polecenia, aby wyświetlać tylko wynik dns.
W systemie Windows użyjnslookup
EDYCJA: nslookup działa również w systemach * nix. Więcej informacji o poleceniu nslookup, czy wydaje się, że został zastąpiony od jakiegoś czasu: http://linuxreviews.org/man/nslookup/
Na * nix możesz użyć:
dig -x [address]
dig -x [address] +short
+short
flaga jest naprawdę przydatna!
man dig
, Adres to adres IPv4 w notacji dziesiętnej z kropkami lub adres IPv6 rozdzielany dwukropkami.
To pytanie ma już milion odpowiedzi, ale dodam kolejne. Oto mała funkcja, którą napisałem do łatwego wykonywania odwrotnego DNS z dig. Dodaj to do ~/.bashrc
pliku, załaduj ponownie powłokę, a następnie możesz wykonać odwrotne wyszukiwanie DNS za pomocą 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}"
}
Odwrotne wyszukiwanie DNS odbywa się poprzez sprawdzenie rekordów wskaźnika (PTR). Jeśli chcesz zrobić odwrotny DNS dla „1.2.3.4”, musisz wyszukać rekordy wskaźnika dla „4.3.2.1.in-addr.arpa”. Moja funkcja pobiera adres IP, odwraca kolejność oktetów (tj. Zmienia ją z 1.2.3.4 na 4.3.2.1), a następnie używa dig
do wykonania właśnie opisanego PTR.
Możesz oczywiście użyć, nslookup 1.2.3.4
jeśli go masz, ale wolę to rozwiązanie oparte na wykopach, ponieważ używa ono serwerów DNS systemu operacyjnego zamiast serwerów dostarczonych przez nslookup (jeśli chcesz, możesz dodać dodatkowe flagi dig kiedy zadzwonisz revdns
, a oni przejdą do wykopania)
dig -x dot-notation
znajduje się „skrót do wyszukiwania wstecznego”. Zastanawiałem się, jaka będzie długa wersja. Dzięki za wyjaśnienie! :)
man dig
: Gdy używane jest -x, nie ma potrzeby podawania argumentów nazwa, klasa i typ. dig automatycznie wykonuje wyszukiwanie nazwy takiej jak 94.2.0.192.in-addr.arpa i ustawia typ zapytania i klasę odpowiednio na PTR i IN.
Wiem dobrze, że dig / host / nslookup są standardowymi narzędziami do nich, ale trzymam je do testowania rozdzielczości systemu operacyjnego (zasadniczo, aby przetestować nsswitch.conf działa poprawnie):
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";
}
przykład:
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
Wyszukiwanie do przodu za pomocą 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
Wyszukiwanie wsteczne za pomocą host
:
$ host 8.8.4.4
4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com.
Wyszukiwanie do przodu za pomocą dig
:
$ dig google-public-dns-b.google.com. +short
8.8.4.4
Wyszukiwanie wsteczne za pomocą dig
:
$ dig -x 8.8.4.4 +short
google-public-dns-b.google.com.
Jeśli używasz nslookup, to jest to (zakładając 192.168.0.1 jako adres IP)
> set type=ptr
> 1.0.168.192.in-addr.arpa
EDYCJA: Pamiętaj, że wyszukiwanie wsteczne działa tylko wtedy, gdy dla adresu IP utworzono rekord PTR i nie ma gwarancji zwrócenia poszukiwanej nazwy hosta. Całkowicie zależy od konfiguracji i obsługi DNS w twojej sytuacji.
Cóż, przyjazna osoba właśnie napisała nslookup to polecenie i ma rację. Działa zarówno w systemie Unix, jak i Windows. Nie jestem pewien, dlaczego usunąłeś swoją odpowiedź, ale masz rację.
Wolę przegląd wiersza polecenia dla systemu Windows (dostępny tutaj: http://members.shaw.ca/nicholas.fong/dig/ ) niż nslookup każdego dnia.
Jeśli musisz przetestować / administrować DNS ze stacji roboczej Windows, weź to narzędzie. Następnie:
C:\dig>dig -x <IP Address>
... pamiętaj też, aby dodać c: \ dig do swojej ścieżki!
drill
narzędziem z ldns, tj.drill -x 123.123.123.123