10 مثال و نکته کاربردی دستور dig به جای nslookup (دریافت پیوندک)

نوشته شده در تاریخ: 13/09/93 | نویسنده:هادی شهیدی

برنامه dig

برنامه dig مخفف domain information groper یا جستجوی اطلاعات دامنه است.
در یکی از مقالات نحوه نصب  برنامه dig که جایگزین مناسبی برای  nslookup محسوب میشود را در ویندوز نشان دادیم . در این مقاله میخواهیم در 10 مثال مختلف کاربرد این برنامه مفید که در محیط سرورها و وی پی اس های لینوکس و همچنین در ویندوز کاربرد دارند و میتوانید استفاده نمایید را نشان دهیم.

مثال اول ) استفاده ساده از دستور  dig و آشنایی با خروجی آن

dig redhat.com

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62863
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3

;; QUESTION SECTION:
;redhat.com.                    IN      A

;; ANSWER SECTION:
redhat.com.             37      IN      A       209.132.183.81

;; AUTHORITY SECTION:
redhat.com.             73      IN      NS      ns4.redhat.com.
redhat.com.             73      IN      NS      ns3.redhat.com.
redhat.com.             73      IN      NS      ns2.redhat.com.
redhat.com.             73      IN      NS      ns1.redhat.com.

;; ADDITIONAL SECTION:
ns1.redhat.com.         73      IN      A       209.132.186.218
ns2.redhat.com.         73      IN      A       209.132.183.2
ns3.redhat.com.         73      IN      A       209.132.176.100

;; Query time: 13 msec
;; SERVER: 209.144.50.138#53(209.144.50.138)
;; WHEN: Thu Jan 12 10:09:49 2012
;; MSG SIZE  rcvd: 164

 

خروجی دستور dig شامل موارد زیر است :

header : در این قسمت ورژن برنامه section و تنظیماتی کلی که برنامه از آن استفاده میکند نمایش داده میشود
question section : در این قسمت سوالی که دستور dig از DNS میپرسد نمایش داده میشود . در مثال ما دستور dig redhat.com را صادر کرده ایم و دستور dig بصورت پیش فرض رکور A مربوط به دامنه مورد سوال یعنی redhat.com را نمایش میدهد.
answer section : در این قسمت خروجی رکورد و یا سوالی که از دستور Dig پرسیده میشود پاسخ داده میشود و همانطوری که در مثال فوق میبینید آی پی که در رکورد A است برگردانده شده است.
authority section : در این قسمت DNS سروی که به عنوان مرجع سوال مورد استفاده قرار گرفته است نمایش داده میشود. اصولاً این مرجع راجع به دامنه name server ای است که روی دامنه تنظیم شده است.
additional section : در این قسمت آی پی Authority برگردانده میشود و آی پی دی ان اس مرجع  نمایش داده میشود.
state section : در این قسمت آمارهایی از جمله مدت زمانی که این گزارش به طول انجامیده است نشان داده میشود.

برنامه dig مخفف domain information groper یا جستجوی اطلاعات دامنه است. برنامه dig جایگزین مناسبی برای nslookup محسوب میشود.

مثال دوم ) مشاهده قسمت ANSWER SECTION در دستور DIG

دستور زیر را اجرا کنید :

$ dig redhat.com +nocomments +noquestion +noauthority +noadditional +nostats

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +nocomments +noquestion +noauthority +noadditional +nostats
;; global options: +cmd
redhat.com.             9       IN      A       209.132.183.81

سوییچ های دستور بالا به شرح زیر هستند :

nocomments : عدم نمایش توضیحات
noauthority : عدم نمایش بخش Authority Section
noadditional : عدم نمایش بخش Additional Section
noanswer : عدم نمایش بخش Answer Section و شما نیازی به این سوییچ ندارید چرا که این سوئیچ پاسخ دستور dig را هم مخفی میکند.

noall : همه پاسخ ها را مخفی میکند.
answer : قسمت Answer Section را نشان خواهد داد.

مثال زیر نحوه استفاده از دو سوییچ آخر را نشان میدهد :

dig redhat.com +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com +noall +answer
;; global options: +cmd
redhat.com.             60      IN      A       209.132.183.81

مثال سوم ) نحوه گزارش گیری از رکورد MX با دستور dig -t MX

مثال زیر را ببینید :

$ dig redhat.com  MX +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com MX +noall +answer
;; global options: +cmd
redhat.com.             513     IN      MX      5 mx1.redhat.com.
redhat.com.             513     IN      MX      10 mx2.redhat.com.

در مثال فوق بدون دستور به dig و در مثال زیر با معرفی رکورد MX با استفاده از t- از MX رکورد دامنه query میگیریم :

$ dig -t MX redhat.com +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t MX redhat.com +noall +answer
;; global options: +cmd
redhat.com.             489     IN      MX      10 mx2.redhat.com.
redhat.com.             489     IN      MX      5 mx1.redhat.com.

مثال چهارم ) گزارش گیری از رکورد NS در دامنه با استفاده از t-

در دو مثال زیر با استفاده از t-  و همچنین بدون آن از رکورد NS دامنه سوال میشود :

$ dig redhat.com NS +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com NS +noall +answer
;; global options: +cmd
redhat.com.             558     IN      NS      ns2.redhat.com.
redhat.com.             558     IN      NS      ns1.redhat.com.
redhat.com.             558     IN      NS      ns3.redhat.com.
redhat.com.             558     IN      NS      ns4.redhat.com.

 

و همچنین :

$ dig -t NS redhat.com +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t NS redhat.com +noall +answer
;; global options: +cmd
redhat.com.             543     IN      NS      ns4.redhat.com.
redhat.com.             543     IN      NS      ns1.redhat.com.
redhat.com.             543     IN      NS      ns3.redhat.com.
redhat.com.             543     IN      NS      ns2.redhat.com.

 

مثال پنجم ) مشاهده همه رکورد های دامنه با استفاده از سوییچ  t-

همه رکوردهای دامنه شامل A و MX و NS و … با دستور زیر مورد پرسش DNS قرار میگیرند :

$ dig redhat.com ANY +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com ANY +noall +answer
;; global options: +cmd
redhat.com.             430     IN      MX      5 mx1.redhat.com.
redhat.com.             430     IN      MX      10 mx2.redhat.com.
redhat.com.             521     IN      NS      ns3.redhat.com.
redhat.com.             521     IN      NS      ns1.redhat.com.
redhat.com.             521     IN      NS      ns4.redhat.com.
redhat.com.             521     IN      NS      ns2.redhat.com.

یا با دستور t-

$ dig -t ANY redhat.com  +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -t ANY redhat.com +noall +answer
;; global options: +cmd
redhat.com.             367     IN      MX      10 mx2.redhat.com.
redhat.com.             367     IN      MX      5 mx1.redhat.com.
redhat.com.             458     IN      NS      ns4.redhat.com.
redhat.com.             458     IN      NS      ns1.redhat.com.
redhat.com.             458     IN      NS      ns2.redhat.com.
redhat.com.             458     IN      NS      ns3.redhat.com.

مثال ششم ) خروجی مختصر با دستور short+

مثال زیر را ببینید :

$ dig redhat.com +short
209.132.183.81

یا مثلاً رکورد NS بصورت خلاصه :

$ dig redhat.com ns +short
ns2.redhat.com.
ns3.redhat.com.
ns1.redhat.com.
ns4.redhat.com.

مثال هفتم ) گزارش معکوس یا Reverse Query

در مثال زیر نحوه DNS Reverse Query با سویچ خلاصه کننده short+ و در بعدی بدن این سوییچ نمایش داده شده است :

dig -x 209.132.183.81 +short
www.redhat.com.

 

 

$ dig -x 209.132.183.81

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> -x 209.132.183.81
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62435
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3

;; QUESTION SECTION:
;81.183.132.209.in-addr.arpa.   IN      PTR

;; ANSWER SECTION:
81.183.132.209.in-addr.arpa. 600 IN     PTR     www.redhat.com.

;; AUTHORITY SECTION:
183.132.209.in-addr.arpa. 248   IN      NS      ns2.redhat.com.
183.132.209.in-addr.arpa. 248   IN      NS      ns1.redhat.com.
183.132.209.in-addr.arpa. 248   IN      NS      ns3.redhat.com.
183.132.209.in-addr.arpa. 248   IN      NS      ns4.redhat.com.

;; ADDITIONAL SECTION:
ns1.redhat.com.         363     IN      A       209.132.186.218
ns2.redhat.com.         363     IN      A       209.132.183.2
ns3.redhat.com.         363     IN      A       209.132.176.100

;; Query time: 35 msec
;; SERVER: 209.144.50.138#53(209.144.50.138)
;; WHEN: Thu Jan 12 10:15:00 2012
;; MSG SIZE  rcvd: 193

 

مثال هشتم ) استفاده از یک دی ان اس سرور خاص برای Query با استفاده از dnsserver@

دستور DIG بصورت پیش فرض از DNS  سروری که روی کامپیتور شما یا سرور شما ست شده است استفاده میکند و پاسخ ها را از آن دریافت میکند . اما ممکن است موردی پیش بیاید که بخواهید از یک دی ان اس سرور خاص برای Query استفاده نمایید مثال زیر نحوه معرفی آن دی ان اس سرور را نشان میدهد:

$ dig @ns1.redhat.com redhat.com

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> @ns1.redhat.com redhat.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20963
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;redhat.com.                    IN      A

;; ANSWER SECTION:
redhat.com.             60      IN      A       209.132.183.81

;; AUTHORITY SECTION:
redhat.com.             600     IN      NS      ns1.redhat.com.
redhat.com.             600     IN      NS      ns4.redhat.com.
redhat.com.             600     IN      NS      ns3.redhat.com.
redhat.com.             600     IN      NS      ns2.redhat.com.

;; ADDITIONAL SECTION:
ns1.redhat.com.         600     IN      A       209.132.186.218
ns2.redhat.com.         600     IN      A       209.132.183.2
ns3.redhat.com.         600     IN      A       209.132.176.100
ns4.redhat.com.         600     IN      A       209.132.188.218

;; Query time: 160 msec
;; SERVER: 209.132.186.218#53(209.132.186.218)
;; WHEN: Thu Jan 12 10:22:11 2012
;; MSG SIZE  rcvd: 180

 

مثال نهم ) query چندید دامنه با استفاده از DIG

میتوانیم با استفاده از دستور dig لیست دامنه هایی که در یک فایل موجود است را مورد پرسش دی ان اس قرار دهیم. برای این منظور مثلاً یک فایل با نام names.txt ایجاد میکنیم و در این فایل دامنه هایمان را در هر خط فایل وارد میکنیم سپس میتوانیم این فایل را به دستور dig بدهیم تا مورد پرسش قرار گیرد.

$ vi names.txt
redhat.com
centos.org

 

$ dig -f names.txt +noall +answer
redhat.com.             60      IN      A       209.132.183.81
centos.org.             60      IN      A       72.232.194.162

 

همانطوری که در بالا مشهاده میکنید ابتدا با استفاده از ویرایشگر متن vi فایل را ایجاد کرده ایم و دامنه ها را در آن معرفی کرده ایم سپس در دستور دوم با سوییچ f- آن فایل را به دستور dig داده ایم . در این دستور از سوییچ noall برای از بین بردن همه خروجی ها و از سوییچ answer برای مشاهده فقط answer section استفاده کرده ایم .

میتوانیم رکورد مورد نظر که میخواهیم از دامنه هایمان استخراج شوند را نیز معرفی کنیم مانند نمونه زیر :

$ dig -f names.txt MX +noall +answer
redhat.com.             600     IN      MX      10 mx2.redhat.com.
redhat.com.             600     IN      MX      5 mx1.redhat.com.
centos.org.             3600    IN      MX      10 mail.centos.org.

 

جالب است بدانید بدون استفاده از فایل در خود دستور dig هم میتوانیم چندین دامین را مورد پرسش از DNS قرار دهیم مطابق نمونه زیر  :

$ dig redhat.com mx +noall +answer centos.org ns +noall +answer

; <<>> DiG 9.7.3-RedHat-9.7.3-2.el6 <<>> redhat.com mx +noall +answer centos.org ns +noall +answer
;; global options: +cmd
redhat.com.             332     IN      MX      10 mx2.redhat.com.
redhat.com.             332     IN      MX      5 mx1.redhat.com.
centos.org.             3778    IN      NS      ns3.centos.org.
centos.org.             3778    IN      NS      ns4.centos.org.
centos.org.             3778    IN      NS      ns1.centos.org.

 

مثال دهم ) ذخیره تنظیمات برای dig

شاید همیشه میخواهید Answer Section را ببینید و نمیخواهید بصورت مرتب آن را در دستور dig وارد کنید به راحتی میتوانید این تنظیم را در dig اعمال کنید . برای این منظور باید فایل digrc. را پیدا کنید و در آن دستور زیر را وارد کنید :

“+noall +answer”

حالا هر زمان دستور Dig را اجرا کنید این سوییچ ها بصورت پیش فرض اعمال میگردند مانند مثال زیر :

 

$ dig redhat.com
redhat.com.             60      IN      A       209.132.183.81

$ dig redhat.com MX
redhat.com.             52      IN      MX      5 mx1.redhat.com.
redhat.com.             52      IN      MX      10 mx2.redhat.com.

 

ایران وب هاست یک شرکت ارائه خدمات برتر میزبانی و ثبت هاست و دامنه است . این شرکت بیش از ده سال است که در ارائه این خدمات به اشخاص و شرکت ها مشغول به فعالیت است و تاکنون هزاران دامنه توسط این شرکت به ثبت رسیده است.
هاست با کیفیت و پشتیبانی مطلوب و دائمی رمز موفقیت این شرکت میباشد.