IP 주소가 주어진 컴퓨터의 이름을 찾는 명령은 무엇입니까?
나는이 명령이 무엇인지 항상 잊지 만, Windows에 존재한다는 것을 알고 있으며 * nix 명령 행에 존재한다고 가정합니다.
Dig and Host 찾고있는 것이어야합니다;)
http://www.unix.com/unix-dummies-questions-answers/9866-nslookup-linux.html
* nix 시스템에서이 명령을 수행 할 수 있습니다 :Dig -x [address]
또는 Dig
명령 끝에 +short
를 추가하여 dns 결과 만 출력 할 수 있습니다.
Windows, nslookup
사용
편집 : nslookup은 * nix 시스템에서도 작동합니다. nslookup 명령에 대한 더 많은 정보는 지금부터 교체 된 것 같습니다 : http://linuxreviews.org/man/nslookup/
* nix에서는 다음을 사용할 수 있습니다.
Dig -x [address]
내가 아는 대부분의 Linux 시스템에서 다음을 사용할 수 있습니다.
nslookup <ip-number EX: 127.0.0.1>
명령 행에서 작동합니다.
Windows XP에서는 nslookup을 사용할 수 없습니까?
이 질문에는 이미 백만 개의 답변이 있지만 다른 질문을 추가하겠습니다. 다음은 Dig로 역방향 DNS를 쉽게 수행하기 위해 작성한 작은 기능입니다. 이것을 ~/.bashrc
파일에서 셸을 다시로드 한 다음 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}"
}
포인터 (PTR) 레코드를 확인하여 역방향 DNS 조회를 수행합니다. "1.2.3.4"에 대해 DNS를 역으로 수행하려면 "4.3.2.1.in-addr.arpa"에 대한 포인터 레코드를 찾아야합니다. 내 함수는 IP 주소를 받아 옥텟의 순서를 반대로 한 다음 (즉, 1.2.3.4에서 4.3.2.1로 변경) Dig
를 사용하여 방금 설명한 PTR 조회를 실행합니다.
물론 nslookup 1.2.3.4
가지고 있다면 nslookup 제공 서버 대신 OS의 DNS 서버를 사용하기 때문에이 Dig 기반 솔루션을 선호합니다. 원하는 경우 revdns
, 그들은 Dig로 전달됩니다)
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
Host
을 사용한 역방향 조회 :
$ Host 8.8.4.4
4.4.8.8.in-addr.arpa domain name pointer google-public-dns-b.google.com.
Dig
을 사용한 정방향 조회 :
$ 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.
Dig/Host/nslookup이 이들을위한 표준 도구라는 것을 잘 알고 있지만 OS의 해상도를 테스트하기 위해 (기본적으로 nsswitch.conf가 올바르게 작동하는지) 확인합니다.
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";
}
예:
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
Windows에서는 다음을 사용하는 습관이 생겼습니다.
ping -a <ip address>
이것은 또한 hosts
파일 및 WINS 등의 데이터를 반영합니다.
Nslookup을 사용하는 경우 이것입니다 (문제의 IP로 192.168.0.1로 가정)
> set type=ptr
> 1.0.168.192.in-addr.arpa
EDIT : 역방향 조회는 IP에 대해 생성 된 PTR 레코드가 있고 원하는 호스트 이름을 반환한다고 보장 할 수없는 경우에만 작동합니다. 상황에 따라 DNS를 구성하고 유지 관리하는 방법에 전적으로 달려 있습니다.
파워 쉘 :
[net.dns]::gethostentry("69.59.196.212").HostName
Windows 용 명령 줄 Dig (여기서 사용 가능 : http://members.shaw.ca/nicholas.fong/Dig/ )를 nslookup에 선호합니다.
Windows 워크 스테이션에서 DNS를 테스트/관리해야하는 경우이 도구를 사용하십시오. 그때:
C:\Dig>Dig -x <IP Address>
... 또한 c :\Dig를 경로에 추가해야합니다!
글쎄, 어떤 우호적 인 사람은 방금 nslookup이 명령이라고 썼으며 그는 맞습니다. Unix와 Windows 모두에서 작동합니다. 왜 답을 삭제했는지는 확실하지 않지만 정답입니다.
그녀는 좀 더 완전한 DNS 역방향 조회를 수행합니다. 이 페이지의 향후 시청자에게 도움이 되길 바랍니다.
for ip in {1..254..1}; do Dig -x 1.1.1.$ip | grep $ip >> dns.txt; done;