برنامه 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 : در این قسمت آمارهایی از جمله مدت زمانی که این گزارش به طول انجامیده است نشان داده میشود.
مثال دوم ) مشاهده قسمت 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.
ایران وب هاست یک شرکت ارائه خدمات برتر میزبانی و ثبت هاست و دامنه است . این شرکت بیش از ده سال است که در ارائه این خدمات به اشخاص و شرکت ها مشغول به فعالیت است و تاکنون هزاران دامنه توسط این شرکت به ثبت رسیده است.
هاست با کیفیت و پشتیبانی مطلوب و دائمی رمز موفقیت این شرکت میباشد.