چطور می‌توان به آدرس DNS یک وب‌سایت رسید؟ چگونه از طریق خط فرمان لینوکس یا مک DNS های یک دامنه یا وب‌سایت را پیدا کنیم؟ با استفاده از bash چگونه این کار ممکن می‌شود؟ این‌ها سوالاتی هستند که در این مطلب قصد داریم بهشون پاسخ بدیم…


DNS مخفف عبارت “Domain Name System“ است. در واقع DNS یک سیستم نامگذاری برای همه کامپیوترها، سرورها و سایر دستگاه‌های آنلاین موجود در شبکه اینترنت است. فلسفه ایجاد DNS کمک به انسان‌ها برای سهولت یادآوری آدرس‌های موجود در شبکه اینترنت است. در واقع، این سرورهای DNS هستند که نام‌ها و عبارات استفاده شده در دامنه‌های اینترنتی را به آدرس آی‌پی وب‌سایت مورد نظر ما ترجمه می‌کنند. بدین ترتیب ما می‌توانیم به وب‌سایت مورد نظرمان دسترسی پیدا کنیم. با ما همراه باشید…


چگونه آدرس DNS یک وب‌سایت را پیدا کنیم؟

مراحل بررسی DNS وب‌سایت یا دامنه مورد نظر شما، در خط فرمان لینوکس یا Unix/macOS:

1) ترمینال را باز کنید.

2) برای بدست آوردن آدرس DNS فعلی دامنه مورد نظرتون دستور زیر را در ترمینال تایپ کنید:

host -t ns domain-name-com-here

3) راه دیگری که برای اینکار وجود دارد که استفاده از دستور زیر است:

dig ns your-domain-name

4) برای پیدا کردن delegation path دستور زیر را در ترمینال تایپ کنید:

dig +trace your-domain-name

5) دستور فوق‌الذکر اطلاعات مفصلی درباره نام دامنه، از جمله نیم‌سرورها (DNS) به شما خواهد داد.


بررسی سرورهای DNS فعلی یک دامنه:

اگر می‌خواهید آدرس‌ DNS های سایتی با دامنه ariaservice.net را از طریق خط فرمان بدست بیاورید، کافیه که توی ترمینال دستور زیر را وارد کنید:

dig ns website-domain
dig ns google.com
dig ns ariaservice.net

نمونه خروجی دستورات بدست آوردن آدرس‌های DNS

خروجی دستور فوق بصورت پیش‌فرض آدرس DNS ها را با جزئیات کامل به شما نمایش داده می‌دهد. اگر می‌خواهید یک خروجی چکیده و خلاصه داشته باشید دستور را اینگونه بنویسید:

dig +short ns ariaservice.net

نمونه خروجی:

fay.ns.cloudflare.com.
clay.ns.cloudflare.com.

برای بدست آوردن آی‌پی آدرس‌های واقعی نیم‌سرورها نیز می‌توانید از دستورات زیر استفاده کنید:

dig +short a fay.ns.cloudflare.com. 
// Output: 173.245.58.115 
dig +short aaaa fay.ns.cloudflare.com. 
// Output: 2400:cb00:2049:1::adf5:3a73

چگونه مسیر طی شده در DNS سرورها را تریس کنیم؟

تریسینگ (Tracing) بصورت پیش‌فرض غیر فعال است. برای فعال کردن این قابلیت از دستور زیر استفاده کنید:

dig +trace ariaservice.net

با اجرای این دستور یک سلسله کوئری‌ها بصورت تکراری اجرا خواهند شد تا در نهایت به آدرس DNS دامنه مورد نظر شما دستیابی حاصل شود. در واقع این دستور تمامی نتایج نیم‌سرورهایی که برای دستیابی به نام دامنه مورد نظر شما به آن‌ها ارجاع شده‌است را از اولین نیم‌سرور تا آخرین دنبال می‌کند.

در صورتی که از دستور dig با فرمت زیر استفاده کنید. تنها تفاوتش در اولین کوئری اجرا شده در این حالت است. در واقع اولین نیم‌سرور در زنجیره نیم‌سرورهایی که به منظور دستیابی به نام دامنه مورد نظر شما استفاده می‌شود، در این دستور از پیش قابل مشخص کردن است.

dig +trace ariaservice.net @8.8.8.8

نمونه خروجی:

. 7313	IN	NS	a.root-servers.net.
. 7313	IN	NS	b.root-servers.net.
. 7313	IN	NS	c.root-servers.net.
. 7313	IN	NS	d.root-servers.net.
. 7313	IN	NS	e.root-servers.net.
. 7313	IN	NS	f.root-servers.net.
. 7313	IN	NS	g.root-servers.net.
. 7313	IN	NS	h.root-servers.net.
. 7313	IN	NS	i.root-servers.net.
. 7313	IN	NS	j.root-servers.net.
. 7313	IN	NS	k.root-servers.net.
. 7313	IN	NS	l.root-servers.net.
. 7313	IN	NS	m.root-servers.net.
. 7313	IN	RRSIG	NS 8 0 518400 20191115050000 20191102040000 22545 . Z14B+vD/MKz0X1UBwu04kzwQNajhg1AflK7j5Jvd9NZac1HZ/M9xdSGN F85s/5ITxEiWWeiBhRghy9PkdOmN3ZzhzS5E8ZeIibm0DdIse+qlPNas sfmNZEsIRbXEOER98eQ+Ieb0hjOlu7Y5l6Mo3dnuyE203IxXZTmtD9QH zMRbX8gOrBnee1XYe7kxw+S2AN6BBeRHNFPHuT5nBCwWQlDVFao2ICrV 0oU97YJE7fwDNzyBgb89G++GjVKhQoM/0Bmr4D2vUAqCz7Nt9Gb28TOt A+FpA6Ax9MpjZSCH8dOvz1nytjWfRMYyF5LVGEN6oPW6BKX2fWrfhIC4 TWIfWA==
;; Received 525 bytes from 8.8.8.8#53(8.8.8.8) in 7 ms
biz. 172800	IN	NS	a.gtld.biz.
biz. 172800	IN	NS	b.gtld.biz.
biz. 172800	IN	NS	c.gtld.biz.
biz. 172800	IN	NS	e.gtld.biz.
biz. 172800	IN	NS	f.gtld.biz.
biz. 172800	IN	NS	k.gtld.biz.
biz. 86400	IN	DS	12385 8 2 AE03B95863B999FC84B725DF5C903511FF96D53825F0454CE6880987 E96F5D20
biz. 86400	IN	DS	12385 8 1 E917523077754FB03308402D76144EAF0D4F6778
biz. 86400	IN	DS	28450 8 1 D9C2F912C657E4005CF0C13BA55C5AAA291AEF56
biz. 86400	IN	DS	28450 8 2 403F234609C56B3A221BC4CFB694948AB5DDF4A26AE17439BF1279CF C5CF21AB
biz. 86400	IN	RRSIG	DS 8 1 86400 20191116050000 20191103040000 22545 . i3J7qFB7/r4bUrZgZg8OcjcfguFXlSWJbgSzWJyFb+04qKWOFks4HwI9 uYKbr35anabpF2DfHlwKurmO/0HN/7uRC5da5VPMild2gUiJmXKjcN73 Gx/8F3zo3fVAjNxi+/JWicUgpCAY4iKfDq21YNV1CZopAn7QPw3+OUoo Haewp4MEF0T+omyMirn1RxBbK6+P2FNFxgGysJsUUNt1yz7Ax2tR/otY DllMPu6sLhY8MvThBVXmZCrpVTXmd/+VUlim8m/BUz/E7fumnrrraFam Khf3skCrfuLlHgemOz/pugUx8qnJ3BtsQKQzsL2cAY34I3g0kA7ckC6c moAEFA==
;; Received 778 bytes from 193.0.14.129#53(k.root-servers.net) in 191 ms
cyberciti.biz. 7200	IN	NS	clay.ns.cloudflare.com.
cyberciti.biz. 7200	IN	NS	fay.ns.cloudflare.com.
9ivsa0gimv18nm4si1tkf2r78navcdut.biz. 86400 IN NSEC3 1 1 1 E3C15F5F 9J0FSB5H124LGRSLHHGR0RDCP0RTEF1N NS SOA RRSIG DNSKEY NSEC3PARAM
9ivsa0gimv18nm4si1tkf2r78navcdut.biz. 86400 IN RRSIG NSEC3 8 2 86400 20191203045447 20191103042210 24963 biz. wkpoTyfFje28GBCJSTzgpV3Cr0Kbknw0n+WTv8/CpXUxG5CiKAfb2qmA KRClCT5oBelSA0FE1GekCjiEWFStCrnW2JOsLsSNWA3QKf8oWPhtBjLq Ij1+YEBFDVC67b0Kdeg6ndM3OZVlb7q9Xvi3n1PIUHS3fbuNF1MyYqMu V10e1Zfn8elyC4fEtJ6YmUhsm4oxHKkhk1NIUG8FQNg0YQ==
91phatls11fhcqsue6s1v6pi3rvttmnn.biz. 86400 IN NSEC3 1 1 1 E3C15F5F 91U8FRHJGMNHK5TPH2253L6LFIU8HM5A NS DS RRSIG
91phatls11fhcqsue6s1v6pi3rvttmnn.biz. 86400 IN RRSIG NSEC3 8 2 86400 20191127183100 20191028181200 24963 biz. YbrRM0lxpgF4rhRe4rfDAMrRq4ifiM9MkIlPuV0XYEY9NpyUNAc19xoi MRqbyUl56YlKiIlrhZPzUedDdkObt3Zz4mXI5tz5DhNPE6t4l4tNEjzH hnagx8TeCLI19S3GBE3tFzlF5zC/1ccOrl2bkYIMBHXssLkJwEGaqX9B VTRGAS1JDOxE0bXG2iEZtWotzu3Jgv+zeXG0HnCALyLFmQ==
;; Received 653 bytes from 156.154.126.65#53(e.gtld.biz) in 30 ms
cyberciti.biz. 300	IN	A	104.20.186.5
cyberciti.biz. 300	IN	A	104.20.187.5
;; Received 74 bytes from 173.245.58.115#53(fay.ns.cloudflare.com) in 65 ms

پیدا کردن آدرس DNS یک وب‌سایت با استفاده از دستور host:

سینتکس استفاده از دستور host:

host -t ns domain-name-here
host -t ns google.com
host -t ns ariaservice.net

 

نمونه خروجی حاصل از اجرای:

ariaservice.net name server fay.ns.cloudflare.com.
ariaservice.net name server clay.ns.cloudflare.com.

استفاده از دستور host برای بدست آوردن آی‌پی آدرسِ واقعیِ نیم‌سرور clay.ns.cloudflare.com:

host -t a clay.ns.cloudflare.com 
// Output: clay.ns.cloudflare.com has address 173.245.59.88 
host -t aaaa clay.ns.cloudflare.com
//Output: clay.ns.cloudflare.com has IPv6 address 2400:cb00:2049:1::adf5:3b58

یک نکته برای کاربران ویندوزی:

کاربران ویندوزی می‌توانند برای بدست آوردن آدرس DNS مورد نظرشان روی ویندوز نسخه دسکتاپ یا سرور، از دستور nslookup  در cmd استفاده کنند. همانطور که می‌دانید cmd را می‌توانید از منوی استارت با نوشتن نامش در فیلد جستجو به راحتی پیدا کنید. نحوه استفاده از دستور nslookup نیز به فرمت زیر است:

nslookup domain-name
nslookup cyberciti.biz

نمونه خروجی:

Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	cyberciti.biz
Address: 104.20.187.5
Name:	cyberciti.biz
Address: 104.20.186.5
Name:	cyberciti.biz
Address: 2606:4700:10::6814:bb05
Name:	cyberciti.biz
Address: 2606:4700:10::6814:ba05

 

همچنین می‌توانید به روش زیر هم از این دستور استفاده کنید:

nslookup command

دستور nslookup برای بدست آوردن آدرس DNS


لیستی از انواع رکوردهای DNS:
host -t a nixcraft.com // Type: A , Description: Host address
host -t aaaa nixcraft.com // Type: AAAA , Description: IPv6 host address	
host -t alias ariaservice.net // Type: ALIAS , Description: Auto resolved alias	
host -t cname ariaservice.net // Type: CNAME , Description: Canonical name for an alias	
host -t mx google.com // Type: MX , Description: Mail eXchange	
host -t ns nixcraft.com // Type: NS , Description: Name Server
host -t ptr 216.58.200.147 // Type: PTR , Description: Pointer
host -t soa nixcraft.com // Type: SOA , Description: Start Of Authority
host -t srv server1.cyberciti.biz // Type: SRV , Description: Location of service
host -t txt nixcraft.com // Type: TXT , Description: Descriptive text

شما می‌توانید این رکوردها را با دستورات nslookup | dig | host بکار ببرید:

DNS record Types

 


نتیجه‌گیری:

شما در این مطلب آموزشی با دستورات nslookup | dig | host آشنا شدید. همچنین، توانستید با اجرای این دستورات اطلاعاتی را درباره آدرس DNS دامنه‌های اینترنتی مورد نظرتون پیدا کنید. علاوه بر این، شما الان می‌دانید که رکوردهای DNS انواع مختلفی دارند. با استفاده از هر کدام از این رکوردها می‌توانید اطلاعات مد نظر خودتان را در مورد زیرساخت DNS یک دامنه اینترنتی مشخص بدست بیاورید. امیدواریم که این مطلب برای شما مفید واقع شده باشد.