في هذه المقالة ، سنشرح كيفية حل اسم المضيف / اسم المجال لعنوان IPv4 و IPv6 في برنامج نصي Bash. ومع ذلك ، قبل الشروع في إنشاء البرنامج النصي ، دعنا نراجع بعض الأوامر التي يمكن استخدامها لحل اسم المضيف / اسم المجال إلى عنوان IP.
بينغ
Ping هي الأداة الأكثر بساطة والمضمنة المتوفرة في جميع أنظمة التشغيل تقريبًا. يتم استخدامه للتحقق من قابلية الوصول للمضيف في الشبكة. ومع ذلك ، يمكننا أيضًا استخدامه للعثور على عنوان IP مقابل أي اسم مضيف / اسم مجال. استخدم الصيغة التالية للعثور على عنوان IP لاسم مضيف / اسم مجال مستهدف:
$بينغالهدف المضيف
نسلكوب
يستخدم Nslookup على نطاق واسع لحل اسم المضيف إلى عنوان IP. لاستخدام هذا الأمر لبحث IP ، استخدم بناء الجملة التالي:
$nslookup الهدف المضيف
مضيف
يمكن استخدام مضيف أداة سطر أوامر آخر للعثور على عنوان IP مقابل أي اسم مضيف / اسم مجال. لاستخدام هذا الأمر ، استخدم بناء الجملة التالي:
$المضيف الهدف المضيف
أنت
Dig هي أداة سطر أوامر مفيدة أخرى تُستخدم للاستعلام عن مختلف السجلات ذات الصلة بـ DNS. يمكن استخدامه للعثور على عنوان IP مقابل أي اسم مضيف / اسم مجال. استخدم أمر Dig بالطريقة التالية للعثور على عنوان IP مقابل اسم مضيف / اسم مجال محدد.
$أنتالهدف المضيف + قصيربرنامج Bash النصي لحل اسم المضيف لعنوان IP
لاستخدام سكربت bash للبحث عن IP ، اتبع الخطوات التالية:
- قم بإنشاء ملف bash باستخدام أي محرر نصوص. هنا سأستخدم محرر Nano لإنشاء نص باسم iplookup.sh .$سودو نانوscript.sh
- انسخ والصق الأسطر التالية في ملف البرنامج النصي الخاص بك. لاحظ أنه هنا في هذا النص البرمجي ، أحدد خادم DNS العام لـ Google للبحث عن IP. يمكنك تحديد أي خادم DNS آخر حسب بيئتك.# حدد خادم DNS
dnsserver='8.8.8.8'
# وظيفة للحصول على عنوان IP
وظيفةget_ipaddr{
ip_address='
# A وسجل AAA لـ IPv4 و IPv6 ، على التوالي
# $ 1 تعني الوسيطة الأولى
لو [ -ن '1 دولار' ]؛من ثم
اسم المضيف='{1} دولار'
لو [ -مع 'نوع الاستعلام' ]؛من ثم
نوع الاستعلام='إلى'
يكون
# استخدم أمر المضيف لعمليات بحث DNS
مضيف-t $ {query_type} $ {hostname} &> /ديف/باطل$ {dnsserver}
لو [ '$؟' -مكافئ '0' ]؛من ثم
# الحصول على عنوان IP
ip_address='$ (host -t $ {query_type} $ {hostname} $ {dnsserver} | awk '/has.*address/{print $ NF؛ exit}')'
آخر
خروج 1
يكون
آخر
خروج 2
يكون
# عرض IP
رما - طرد - قذف ip_address $
}
اسم المضيف='{1} دولار'
لاستفسارفي 'A-IPv4' 'AAAA-IPv6'؛فعل
نوع الاستعلام='$ (printf $ query | قص -d- -f 1)'
ipversion='$ (printf $ query | قص -d- -f 2)'
عنوان='$ (get_ipaddr $ {hostname})'
لو [ '$؟' -مكافئ '0' ]؛من ثم
لو [ -ن '$ {العنوان}' ]؛من ثم
رما - طرد - قذف 'ال$ {ipversion}عنوان اسم المضيف$ {hostname}يكون:العنوان $'
يكون
آخر
رما - طرد - قذف 'حدث خطأ'
يكون
انتهى - بمجرد الانتهاء من ذلك ، استخدم Ctrl + O و Ctrl + X لحفظ الملف والخروج منه على التوالي.
- الآن للعثور على عنوان IP مقابل اسم مضيف / اسم مجال مستهدف ، قم بتشغيل البرنامج النصي باستخدام بناء الجملة التالي:$./script.sh الهدف المضيف
على سبيل المثال ، لحل عنوان IP الخاص بـ google.com ، سيكون الأمر كما يلي:
$./iplookup.sh google.comوبالمثل ، لحل عنوان IP الخاص بـ yahoo.com ، سيكون الأمر:
$./iplookup.sh yahoo.comهذا هو كل ما في الامر! في هذه المقالة ، تعلمنا حل اسم المضيف لعنوان IPv4 و IPv6 باستخدام برنامج bash النصي. تعلمنا أيضًا بعض أدوات سطر الأوامر الأخرى مثل Ping و Nslookup و Host و Dig التي يمكن استخدامها لإجراء بحث عن IP.