it-swarm-vi.tech

Tiện ích dòng lệnh DNS ngược là gì?

Lệnh tìm tên máy tính có địa chỉ IP là gì?

Tôi luôn quên lệnh này là gì, nhưng tôi biết nó tồn tại trong Windows và tôi cho rằng nó tồn tại trên dòng lệnh * nix.

75
Peter Turner

Dig Máy chủ sẽ là thứ bạn đang tìm kiếm;)

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

Trên hệ thống * nix, bạn có thể thực hiện lệnh này: Dig -x [address]

Ngoài ra, bạn có thể thêm +short ở cuối lệnh Dig để chỉ xuất kết quả dns.

Trên Windows , sử dụng nslookup

EDIT: nslookup cũng hoạt động trên các hệ thống * nix. Thêm thông tin về lệnh nslookup cho dù nó dường như đã được thay thế từ bây giờ: http://linuxreviews.org/man/nslookup/

59
Marc-Andre R.

Trên * nix bạn có thể sử dụng:

Dig -x [address]
54
palehorse

Trên hầu hết các hệ thống Linux mà tôi biết bạn có thể sử dụng:

 nslookup <ip-number EX: 127.0.0.1>

sẽ làm việc trên dòng lệnh.

Hãy nghĩ về nó, không phải nslookup có sẵn trên Windows XP?

8
mdpc

Câu hỏi này đã có một triệu câu trả lời, nhưng tôi sẽ thêm một câu hỏi khác. Đây là một chức năng nhỏ mà tôi đã viết để dễ dàng thực hiện đảo ngược DNS với Dig. Thêm phần này vào tệp ~/.bashrc, Tải lại Shell của bạn và sau đó bạn có thể thực hiện tra cứu DNS ngược với 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}"
}

Tra cứu DNS ngược được thực hiện bằng cách kiểm tra các bản ghi con trỏ (PTR). Nếu bạn muốn thực hiện đảo ngược DNS cho "1.2.3.4", bạn phải tra cứu các bản ghi con trỏ cho "4.3.2.1.in-addr.arpa". Hàm của tôi nhận một địa chỉ IP, đảo ngược thứ tự của các octet (tức là thay đổi nó từ 1.2.3.4 thành 4.3.2.1), sau đó sử dụng Dig để thực hiện tra cứu PTR mà tôi vừa mô tả.

Tất nhiên, bạn có thể chỉ sử dụng nslookup 1.2.3.4 Nếu bạn có nó, nhưng tôi thích giải pháp dựa trên Dig này vì nó sử dụng các máy chủ DNS của HĐH thay vì các máy chủ do nslookup cung cấp (nếu bạn muốn, nhân tiện, bạn có thể thêm các cờ Dig bổ sung khi bạn gọi revdns và chúng sẽ được chuyển đến Dig)

4
Hayden Schiff

Hãy thử "Máy chủ"

  • Tra cứu chuyển tiếp với 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
    
  • Tra cứu ngược với Host:

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

Tương tự như đào

  • Tra cứu chuyển tiếp với Dig:

    $ Dig google-public-dns-b.google.com. +short
    8.8.4.4
    
  • Tra cứu ngược với Dig:

    $ Dig -x 8.8.4.4 +short
    google-public-dns-b.google.com.
    
3
StackzOfZtuff

Tôi biết rõ rằng Dig/Host/nslookup là những công cụ tiêu chuẩn cho những thứ này, nhưng tôi giữ chúng xung quanh để kiểm tra độ phân giải của HĐH (về cơ bản, để kiểm tra nsswitch.conf đang hoạt động chính xác):

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

thí dụ:

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
3
jj33

Trên Windows tôi có thói quen sử dụng:

ping -a <ip address>

vì điều này cũng sẽ phản ánh dữ liệu từ tệp hosts của bạn và WINS, v.v.

3
Dave Webb

Nếu bạn đang sử dụng nslookup thì đây là (giả sử 192.168.0.1 là IP được đề cập)

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

EDIT : Hãy nhớ tra cứu ngược chỉ hoạt động nếu có bản ghi PTR được tạo cho IP và không đảm bảo trả lại tên máy chủ bạn đang tìm kiếm. Hoàn toàn phụ thuộc vào cách DNS được cấu hình và duy trì trong tình huống của bạn.

1
squillman

Quyền hạn:

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

Tôi thích dòng lệnh Dig cho Windows (có sẵn tại đây: http://members.shaw.ca/nicholas.fong/Dig/ ) cho nslookup bất kỳ ngày nào.

Nếu bạn phải kiểm tra/quản trị DNS từ máy trạm Windows, hãy lấy công cụ này. Sau đó:

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

... Ngoài ra, hãy nhớ thêm c:\Dig vào đường dẫn của bạn!

0
Cory J

Chà, một người thân thiện vừa viết nslookup là mệnh lệnh, và anh ấy đúng. Nó hoạt động trên cả Unix và Windows. Không chắc chắn tại sao bạn xóa câu trả lời của bạn, nhưng bạn là chính xác thưa ông.

0
Peter Turner

Đây là của tôi về một tra cứu ngược DNS hoàn chỉnh hơn. Hy vọng điều này sẽ có ích cho người xem trong tương lai của trang này.

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