क्या सभी CNAME प्रविष्टियों को खोजने के लिए हमारी आंतरिक DNS प्रविष्टियों को क्वेरी करने का एक तरीका है जो किसी विशेष सर्वर को इंगित करता है?
संपादित करें: हम एक विंडोज़ वातावरण हैं, सर्वर 2003।
क्या सभी CNAME प्रविष्टियों को खोजने के लिए हमारी आंतरिक DNS प्रविष्टियों को क्वेरी करने का एक तरीका है जो किसी विशेष सर्वर को इंगित करता है?
संपादित करें: हम एक विंडोज़ वातावरण हैं, सर्वर 2003।
जवाबों:
आपने यह निर्दिष्ट नहीं किया कि आपका वातावरण क्या है, लेकिन यदि आप यूनिक्स का उपयोग कर रहे हैं तो मुझे लगता है कि खुदाई और grep का संयोजन काम करना चाहिए। ns.example.com
आपके नामनाम का होस्टनाम होना चाहिए, example.com
वह डोमेन है जिसका होस्ट आपका हिस्सा है और HOST वह होस्ट है जिसके लिए आप सभी CNAME रिकॉर्ड ढूंढना चाहते हैं। यह वास्तव में grep कमांड में एक टैब कैरेक्टर है, शाब्दिक रूप से नहीं <TAB>
(आपको grep स्ट्रिंग को समायोजित करना पड़ सकता है)।
ज़ोन ट्रांसफ़र की अनुमति देने के लिए आपके नेमसर्वर को कॉन्फ़िगर करने की आवश्यकता है, जिनमें से विशेष रूप से कार्यान्वयन निर्भर होगा।
dig @ns.example.com example.com axfr |grep 'CNAME<tab>HOST$'
या यदि आप विंडोज पर हैं तो आप nslookup का उपयोग कर सकते हैं :
C:\> nslookup
> name ns.example.com
> ls -a example.com FILE
इस डोमेन के लिए रिकॉर्ड के सभी उत्पादन करना चाहिए example.com
कि ns.example.com
"के बारे में जानता है" फ़ाइल करने के लिए। फिर आप संबंधित CNAMES की तलाश में टेक्स्ट फ़ाइल के माध्यम से जो भी टूल को सॉर्ट करना चाहते हैं उसका उपयोग कर सकते हैं।
या इस अप्रयुक्त (लेकिन सही लग रही है) पर्ल स्क्रिप्ट के साथ :
#!/usr/bin/perl
use Net::DNS;
($target, $zone) = @ARGV;
$res = new Net::DNS::Resolver;
foreach $rr ($res->axfr($zone)) {
print $rr->name."\n" if (($rr->type eq "CNAME") && ($rr->rdatastr eq $target."."));
}
पूर्णता के लिए कुछ बिंदु:
यदि आपके पास अपने DNS कॉन्फ़िगरेशन तक पहुंच है, तो यह इस डेटा को खोजने के लिए तुच्छ है। हालाँकि, किसी के पास आपके सर्वर पर इंगित CNAME हो सकता है। आप इन्हें ट्रेस नहीं कर पाएंगे।
जैसा कि @wombie ने बताया है कि आप CNAMES के लिए रिवर्स लुकअप नहीं कर सकते। CNAMES के लिए कोई PTR समतुल्य नहीं है, और वहां भी जहां यह संभावना है कि केवल कुछ रिकॉर्ड मौजूद होंगे। डोमेन के एक यादृच्छिक चयन की एक त्वरित जांच पीटीआर रिकॉर्ड दिखाती है जो अक्सर ए रिकॉर्ड में वापस नहीं आती है। इसी तरह, यादृच्छिक पते के लिए पीटीआर रिकॉर्ड के रिवर्स लुकअप करने से अक्सर संबंधित ए रिकॉर्ड नहीं मिलता है।
EDIT: CNAME किसी सिस्टम को उपनाम देने का एकमात्र तरीका नहीं है। DNS एक ही पते को इंगित करने के लिए एकाधिक A रिकॉर्ड की अनुमति देता है। कार्यात्मक रूप से यह CNAME जोड़ने के समान है लेकिन विधि अलग है। वही समस्याएं आपके डोमेन के बाहर लागू होती हैं। विभिन्न ए रिकॉर्ड्स की खोज करने के लिए आप सिस्टम में आईपी एड्रेस (एस) के लिए खोज करेंगे।
शक्तियों का उपयोग करें:
अपने Microsoft DNS सर्वर पर प्राथमिक नाम के लिए जाँच करें:
Get-WmiObject -Namespace 'root \ MicrosoftDNS' -Class MicrosoftDNS_AType -Filter "IPAddress = 'xx.xx.xx.xx (IP)'" -Computercame mydnsservername
अपने Microsoft DNS सर्वर से उस होस्ट के लिए सभी नाम प्राप्त करें:
Get-WmiObject -Namespace 'root \ MicrosoftDNS' -Class MicrosoftDNS_CNAMEType -Filter "Primaryname = 'प्राथमिक नाम एक डॉट के साथ समाप्त होने वाली पहली क्वेरी से।" "-CompelName mydnsservername। स्वयं का नाम, प्राथमिक नाम चुनें।
dnscmd
ज़ोन डेटा निर्यात करने के लिए उपयोग करें:dnscmd a.ns.example.com / zoneexport zone.example.com कुछ-फ़ाइल नाम
CNAME
संसाधन रिकॉर्ड के लिए निर्यात की गई फ़ाइलों को खोजें जो लक्ष्य डोमेन नाम की ओर इशारा करती हैं।