रिवर्स DNS कमांड लाइन उपयोगिता क्या है?


71

कंप्यूटर का नाम अपना IP पता देने के लिए क्या है?

मैं हमेशा यह भूल जाता हूं कि यह कमांड क्या है, लेकिन मुझे पता है कि यह विंडोज में मौजूद है और मुझे लगता है कि यह * निक्स कमांड लाइन पर मौजूद है।

जवाबों:


56

खुदाई और होस्ट वह होना चाहिए जो आप देख रहे हैं;)

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

* Nix सिस्टम पर आप यह कमांड कर सकते हैं: dig -x [address]

वैकल्पिक रूप से आप केवल डीएनएस परिणाम के उत्पादन +shortके लिए digकमांड के अंत में जोड़ सकते हैं ।

विंडोज पर , उपयोग करेंnslookup

EDIT: nslookup * nix सिस्टम पर भी काम करता है। Nslookup कमांड के बारे में अधिक जानकारी कि क्या यह अब थोड़ी देर से प्रतिस्थापित किया गया लगता है: http://linuxreviews.org/man/nlookup/


वही सिंटैक्स भी drillldns से उपयोगिता के साथ काम करता है , अर्थातdrill -x 123.123.123.123
तुललो_x86

52

* निक्स पर आप उपयोग कर सकते हैं:

dig -x [address]

16
यह निश्चित रूप से सबसे आसान तरीका लगता है। अंत में rdns परिणाम के अलावा कुछ नहीं लौटने के लिए + लघु जोड़ें। dig -x [address] +short
कॉलिनम

3
यह +shortध्वज वास्तव में उपयोगी है!
नील

क्या यह IPv6 पतों के साथ काम करता है?
गेरीमिया

@ColinM अच्छा बिंदु। मैंने इसी के आधार पर अपना उत्तर संपादित किया है। धन्यवाद!
मार्क-आंद्रे आर।

हाँ, @Geremia, के अनुसार man dig, addr बिंदीदार-डेसीमल नोटेशन एक IPv4 पता, या पेट के सीमांकित IPv6 पता है।
रिकार्डो

8

अधिकांश लिनक्स सिस्टमों पर, जिनके बारे में मुझे पता है कि आप उपयोग कर सकते हैं:

 nslookup <ip-number EX: 127.0.0.1>

कमांड लाइन पर काम करेगा।

यह सोचने के लिए आओ, क्या Windows XP पर nslookup उपलब्ध नहीं है?


हाँ सचमुच। और विंडोज के पिछले संस्करणों में।
kubanczyk

4

इस प्रश्न के पहले से ही एक लाख उत्तर हैं, लेकिन मैं एक और जोड़ने वाला हूं। यहाँ एक छोटा सा फ़ंक्शन है जो मैंने आसानी से खुदाई के साथ DNS को रिवर्स करने के लिए लिखा था। इसे अपनी ~/.bashrcफ़ाइल में जोड़ें , अपना शेल पुनः लोड करें, और फिर आप इसके साथ DNS लुकअप रिवर्स कर सकते हैं 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}"
}

रिवर्स DNS लुकअप पॉइंटर (पीटीआर) रिकॉर्ड की जांच करके किया जाता है। यदि आप "1.2.3.4" के लिए रिवर्स DNS करना चाहते हैं, तो आपको "4.3.2.1.in-addr.arpa" के लिए पॉइंटर रिकॉर्ड देखने होंगे। मेरा फ़ंक्शन एक आईपी पते में लेता है, ऑक्टेट्स के क्रम को उलट देता है (अर्थात इसे 1.2.3.4 से 4.3.2.1 तक बदल देता है), और फिर digमैं अभी वर्णित पीटीआर लुकअप को निष्पादित करने के लिए उपयोग करता हूं।

आप निश्चित रूप से, nslookup 1.2.3.4यदि आपके पास है, तो इसका उपयोग कर सकते हैं, लेकिन मैं इस डिग-आधारित समाधान को पसंद करता हूं क्योंकि यह nslookup प्रदान किए गए लोगों के बजाय OS 'DNS सर्वरों का उपयोग करता है (यदि आप चाहें, तो आप अतिरिक्त डिग फ़्लैग जोड़ सकते हैं) जब आप फोन revdnsकरेंगे, और वे खुदाई करने के लिए पास हो जाएंगे)


इसकी मदद के अनुसार dig -x dot-notation"रिवर्स लुकअप के लिए शॉर्टकट" है। मैं सोच रहा था कि लंबा संस्करण क्या होगा। समझाने के लिए धन्यवाद! :)
webwurst

से man dig: जब -x का उपयोग किया जाता है, तो नाम, वर्ग और प्रकार के तर्क देने की कोई आवश्यकता नहीं है। खुदाई स्वचालित रूप से 94.2.0.192.in-addr.arpa जैसे नाम के लिए लुकअप करती है और क्रमशः PTR और IN को क्वेरी टाइप और क्लास सेट करती है।
रिकार्डो

3

मुझे अच्छी तरह पता है कि खुदाई / मेजबान / nslookup इन के लिए मानक उपकरण हैं, लेकिन मैं ओएस के रिज़ॉल्यूशन (अनिवार्य रूप से, 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

4
आप "getent मेजबान [आईपी या होस्टनाम]" क्या कर सकते हैं
hayalci

हम्म्म ... मैंने उपकरण को मूल रूप से केवल फ़ंक्शन के साथ खेलने के लिए लिखा था, इसलिए वहां कोई नुकसान नहीं हुआ, लेकिन अगर मैं गेटेंट टूल के बारे में जानता था, तो मैं निश्चित रूप से उन्हें सर्वरफॉल्ट में नहीं डालूंगा। सूचक के लिए धन्यवाद।
jj33

-1: वे IPv4 तक ही सीमित हैं, जब वे मौजूद हों तो gethostbyname IPv6 पतों को पुनर्प्राप्त नहीं करता है और gethostbyaddr IPv6 पतों को स्वीकार नहीं करता है।
bortzmeyer

ये कार्य कई वर्ष पुराने हैं। यह लिखे जाने पर वे अप्रचलित भी थे। पर्ल और अधिकांश अन्य भाषाओं में आपको getaddrinfo और getnameinfo का उपयोग करना चाहिए।
माइकल हैम्पटन

3

विंडोज पर मुझे प्रयोग करने की आदत है:

ping -a <ip address>

क्योंकि यह आपकी hostsफ़ाइल और WINS इत्यादि के डेटा को भी प्रतिबिंबित करेगा ।


2

"होस्ट" का प्रयास करें

  • इसके साथ फ़ॉरवर्ड लुकअप 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.
    

1

यदि आप nslookup का उपयोग कर रहे हैं तो यह है (192.168.0.1 को आईपी के रूप में मानकर)

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

संपादित करें: याद रखें कि एक रिवर्स लुकअप केवल तभी काम करता है जब आईपी के लिए पीटीआर रिकॉर्ड बनाया गया हो, और इसके लिए होस्टनाम की वापसी की गारंटी नहीं है। पूरी तरह से इस बात पर निर्भर करता है कि आपकी स्थिति में DNS को कैसे कॉन्फ़िगर और रखरखाव किया जाता है।


5
nsloookup अब नहीं है और इसके लेखक खुदाई की सलाह देते हैं। इसके अलावा, डिक्स -x अपने आप बाइट्स को उलटने की तुलना में बहुत सरल है।
बोर्ट्जमेयर

यह जानना अच्छा है, इनपुट के लिए बहुत बहुत धन्यवाद! पुरानी आदतें कठिन हो जाती हैं;)
स्क्वीमैन


0

ठीक है, कुछ दोस्ताना व्यक्ति ने लिखा है nslookup कमांड है, और वह सही है। यह यूनिक्स और विंडोज दोनों पर काम करता है। निश्चित नहीं है कि आपने अपना उत्तर क्यों हटाया, लेकिन आप सही हैं सर।


गलत, शायद नहीं।
पीटर टर्नर

हाँ ठीक है, मैंने थोड़ी तेजी से पोस्ट किया था, और एक चेक के बाद मुझे अपने जवाब पर यकीन नहीं था, मैंने अभी अपनी पोस्ट वापस ले ली है और अधिक विवरण जोड़ने के लिए इसे संपादित किया है;)
मार्क-आंद्रे आर।

ठीक है, यह है, लेकिन यह नहीं है कि मैं उस जवाब को स्वीकार कर रहा हूं। बहुत बुरा हम यहाँ उस वास्तविक समय Googley AJAX नहीं प्राप्त कर सकते हैं।
पीटर टर्नर

हाँ, ठीक है, हमारे पास सब कुछ नहीं हो सकता है;) एक अच्छा दिन है, मुझे आशा है कि मैं आपकी मदद करूंगा;)
मार्क-आंद्रे आर।

0

मैं किसी भी दिन nslookup करने के लिए विंडोज के लिए कमांड-लाइन खुदाई (यहां उपलब्ध है: http://members.shaw.ca/nicholas.fong/dig/ ) को पसंद करता हूं ।

यदि आपको विंडोज वर्कस्टेशन से DNS का परीक्षण / प्रशासन करना है, तो इस टूल को पकड़ो। फिर:

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

... यह भी याद रखें: c: \ dig को अपने पथ में जोड़ें!


0

उसका मेरा एक और अधिक पूर्ण DNS रिवर्स लुकअप पर है। आशा है कि यह इस पृष्ठ के भविष्य के दर्शकों के लिए काम आएगा।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.