dog(1) dog(1) نام (NAME) dog - ابزار خط فرمان برای پرس‌وجوی سامانه‌ی نام دامنه (DNS) خلاصه دستور (SYNOPSIS) dog [options] [domains...] دستور dog یک ابزار خط فرمانی برای پرس‌وجوی سامانه نام دامنه (DNS) است. این ابزار خروجی رنگی ارائه می‌دهد، از پروتکل‌های DNS-over-TLS و DNS-over- HTTPS پشتیبانی می‌کند و می‌تواند خروجی با ساختار JSON تولید نماید. مثال‌ها (EXAMPLES) dog example.net پرس‌وجوی رکورد A یک دامنه با استفاده از تنظیمات پیش‌فرض dog example.net MX جستجوی رکوردهای MX به جای آن dog example.net MX @1.1.1.1 استفاده از یک کارساز نام (nameserver) مشخص به جای حالت پیش‌فرض dog example.net MX @1.1.1.1 -T استفاده از پروتکل TCP به جای UDP dog -q example.net -t MX -n 1.1.1.1 -T مشابه موارد بالا، اما با استفاده از آرگومان‌های صریح گزینه‌های پرس‌وجو (QUERY OPTIONS) -q, --query=HOST نام میزبان یا نام دامنه مورد پرس‌وجو. -t, --type=TYPE نوع رکورد DNS مورد پرس‌وجو (A، MX، NS و غیره). -n, --nameserver=ADDR نشانی کارساز نام برای ارسال بسته‌ها به آن. --class=CLASS کلاس شبکه رکورد DNS مورد پرس‌وجو (IN، CH، HS). به‌طور پیش‌فرض، dog رکوردهای A را با استفاده از تحلیل‌گر پیش‌فرض سیستم درخواست می‌کند. حداقل یک نام دامنه باید ارسال شود — برنامه dog به‌طور خودکار کارسازهای نام ریشه را پرس‌وجو نمی‌کند. گزینه‌های پرس‌وجو را می‌توان با یک گزینه خط فرمان مانند `--query lookup.dog' یا `--type MX'، یا به صورت آرگومان‌های ساده مانند `lookup.dog' یا `MX' ارسال کرد. برنامه dog حدس هوشمندانه‌ای خواهد زد که منظور از آرگومان‌های ساده چیست (MX کاملاً مشخص است که یک نوع رکورد است)، که نوشتن سریع پرس‌وجوهای موردی را آسان‌تر می‌کند. اگر دقت و صراحت بیشتری مد نظر است، از گزینه‌های بلند استفاده کنید. اگر بیش از یک دامنه، نوع، کارساز نام یا کلاس مشخص شود، dog برای هر ترکیب یک پرس‌وجو انجام داده و نتایج ترکیبی را در یک جدول نمایش می‌دهد. برای مثال، ارسال سه آرگومان نوع و دو آرگومان نام دامنه، شش درخواست ارسال خواهد کرد. سامانه DNS به‌طور سنتی از درگاه ۵۳ برای هر دو پروتکل TCP و UDP استفاده می‌کند. برای استفاده از یک تحلیل‌گر با درگاهی متفاوت، شماره درگاه را پس از دو نقطه (:) در نشانی کارساز نام درج کنید. گزینه‌های ارسال (SENDING OPTIONS) --edns=SETTING تعیین تمایل به استفاده از EDNS. این گزینه می‌تواند `disable'، `hide' یا `show' باشد. --txid=NUMBER تنظیم شناسه تراکنش روی یک مقدار مشخص. -Z=TWEAKS تنظیم دستکاری‌های غیرمعمول در سطح پروتکل. گزینه‌های انتقال (TRANSPORT OPTIONS) -U, --udp استفاده از پروتکل DNS روی UDP. -T, --tcp استفاده از پروتکل DNS روی TCP. -S, --tls استفاده از پروتکل DNS-over-TLS. -H, --https استفاده از پروتکل DNS-over-HTTPS. به‌طور پیش‌فرض، dog از پروتکل UDP استفاده می‌کند و در صورتی که پاسخ نشان دهد پیام برای UDP بیش از حد بزرگ است، به‌طور خودکار درخواست را با استفاده از TCP مجدداً ارسال می‌کند. ارسال --udp تنها از UDP استفاده کرده و در این حالت با شکست مواجه می‌شود؛ ارسال --tcp به‌طور پیش‌فرض از TCP استفاده خواهد کرد. پروتکل‌های DNS-over-TLS (DoT) و DNS-over-HTTPS (DoH) با گزینه‌های --tls و --https در دسترس هستند. به یاد داشته باشید که بعید است تحلیل‌گر پیش‌فرض سیستم به درخواست‌هایی با استفاده از این پروتکل‌ها پاسخ دهد. توجه داشته باشید که اگر یک نام میزبان یا نام دامنه به جای نشانی IP به عنوان کارساز نام داده شود، وضوح‌یابی آن میزبان توسط سیستم‌عامل انجام می‌شود، نه توسط dog. برخلاف سایر روش‌ها، نوع انتقال HTTPS نیازمند یک نشانی وب (URL) کامل، شامل پروتکل، نام دامنه و مسیر است. گزینه‌های خروجی (OUTPUT OPTIONS) -1, --short حالت کوتاه: تنها نتیجه اول را نمایش می‌دهد. -J, --json نمایش خروجی در قالب JSON. --color, --colour=WHEN زمان رنگی کردن خروجی. می‌تواند یکی از مقادیر `always'، `automatic' یا `never' باشد. --seconds مدت زمان‌ها را بر حسب ساعت و دقیقه قالب‌بندی نمی‌کند؛ در عوض آن‌ها را بر حسب ثانیه نمایش می‌دهد. --time مدت زمانی که طول کشید تا پاسخ دریافت شود را چاپ می‌کند. گزینه‌های عمومی (META OPTIONS) --help مروری بر گزینه‌های خط فرمان را نمایش می‌دهد. --version نسخه در حال اجرای dog را نمایش می‌دهد. متغیرهای محیطی (ENVIRONMENT VARIABLES) برنامه dog به متغیرهای محیطی زیر پاسخ می‌دهد: DOG_DEBUG این متغیر را روی هر مقدار غیرخالی تنظیم کنید تا dog اطلاعات اشکال‌زدایی را به خروجی خطای استاندارد ارسال کند. برای دریافت خروجی عمیق‌تر و دقیق‌تر، آن را روی رشته دقیق `trace' تنظیم کنید. انواع رکوردها (RECORD TYPES) برنامه dog انواع رکوردهای زیر را می‌شناسد و می‌تواند تفسیر کند: A نشانی‌های IPv4 AAAA نشانی‌های IPv6 CAA مراجع صدور گواهی مجاز (CA) CNAME نام‌های مستعار رسمی دامنه HINFO اطلاعات سیستم و در برخی مواقع توضیحات درخواست‌های غیرمجاز LOC اطلاعات موقعیت مکانی MX نشانی‌های کارساز ایمیل NAPTR قوانین DDDS NS کارسازهای نام دامنه OPT افزونه‌های پروتکل DNS PTR اشاره‌گرها به نام‌های رسمی، معمولاً برای وضوح‌یابی معکوس SOA اطلاعات مدیریتی درباره منطقه‌ها (zones) SRV نشانی‌های IP همراه با شماره درگاه SSHFP اثر انگشت کلید SSH TLSA گواهی‌های TLS، کلیدهای عمومی و هش‌ها TXT اطلاعات متنی دلخواه هنگامی که یک بسته پاسخ DNS حاوی رکوردی از یکی از این انواع شناخته‌شده باشد، dog آن را در جدولی شامل نام نوع و خلاصه‌ای خوانا برای انسان از محتوای آن نمایش می‌دهد. رکوردهایی با شماره نوعی که به هیچ نوع رکورد شناخته‌شده‌ای نگاشت نمی‌شود همچنان نمایش داده خواهند شد. از آنجا که این رکوردها قابل تفسیر نیستند، محتوای آن‌ها به صورت یک سری اعداد نمایش داده می‌شود. برنامه dog همچنین شامل فهرستی از نام‌های انواع رکورد است که شماره نوع آن‌ها را می‌داند، اما قادر به تفسیر آن‌ها نیست، مانند IXFR یا ANY یا AFSDB. این موارد به عنوان آرگومان‌های خط فرمان قابل قبول هستند، به این معنی که می‌توانید با `dog AFSDB' یک درخواست AFSDB ارسال کنید. با این حال، محتوای پاسخ آن‌ها همچنان به صورت عدد نمایش داده می‌شود. ممکن است این موارد در نسخه‌های بعدی dog پشتیبانی شوند. دستکاری‌های پروتکل (PROTOCOL TWEAKS) آرگومان خط فرمان -Z می‌تواند یک یا چند بار برای تنظیم برخی گزینه‌ها در سطح پروتکل در پرس‌وجوهای DNS ارسال‌شده استفاده شود. این گزینه مقادیر زیر را می‌پذیرد: aa بیت AA (پاسخ‌های معتبر - Authoritative Answers) را در پرس‌وجو تنظیم می‌کند. ad بیت AD (داده‌های معتبر - Authentic Data) را در پرس‌وجو تنظیم می‌کند. bufsize=NUM اندازه بار مفید UDP را در فیلد OPT در پرس‌وجو تنظیم می‌کند. اگر EDNS غیرفعال باشد، این گزینه تأثیری ندارد. cd بیت CD (بررسی غیرفعال - Checking Disabled) را در پرس‌وجو تنظیم می‌کند. وضعیت‌های خروج (EXIT STATUSES) 0 اگر همه چیز بدون خطا انجام شود. 1 در صورت بروز خطای شبکه، ورودی/خروجی یا TLS در حین عملیات. 2 اگر در صورت اجرا در حالت کوتاه، نتیجه‌ای از سرور دریافت نشود. این می‌تواند هر خطای دریافتی از سرور باشد، نه فقط NXDOMAIN. 3 در صورت بروز مشکل در آرگومان‌های خط فرمان. نویسنده (AUTHOR) برنامه dog توسط Benjamin `ogham' Sago توسعه یافته و نگهداری می‌شود. وب‌سایت: https://dns.lookup.dog کد منبع: https://github.com/ogham/dog v0.1.0 dog(1)