كيف يمكنني تحويل اسم مضيف إلى عنوان IP في برنامج Bash النصي؟

How Can I Resolve Hostname An Ip Address Bash Script



يتم تعيين معرف فريد لكل نظام في شبكة TCP / IP يُعرف باسم عنوان IP الذي يساعد على توصيله بالنظام الآخر للشبكة وجميع أنحاء الإنترنت. جميع مواقع الويب التي تدخل إليها على الإنترنت لها أيضًا عناوين IP فريدة. نظرًا لأنه من الصعب على الجميع تذكر عناوين IP لهذه المواقع ، يأتي نظام DNS الذي يساعد على ترجمة عناوين IP التي يصعب تذكرها إلى أسماء يمكن قراءتها. مع DNS ، لم تعد مضطرًا لتذكر عناوين IP. بدلاً من ذلك ، عليك فقط أن تتذكر اسم المجال وكل ذلك. في الواقع ، على النسخ الاحتياطي ، يأخذ خادم DNS اسم المضيف ويحلله إلى عنوان IP الذي يتصل به المتصفح أو التطبيق بعد ذلك.

في هذه المقالة ، سنشرح كيفية حل اسم المضيف / اسم المجال لعنوان IPv4 و IPv6 في برنامج نصي Bash. ومع ذلك ، قبل الشروع في إنشاء البرنامج النصي ، دعنا نراجع بعض الأوامر التي يمكن استخدامها لحل اسم المضيف / اسم المجال إلى عنوان IP.







بينغ

Ping هي الأداة الأكثر بساطة والمضمنة المتوفرة في جميع أنظمة التشغيل تقريبًا. يتم استخدامه للتحقق من قابلية الوصول للمضيف في الشبكة. ومع ذلك ، يمكننا أيضًا استخدامه للعثور على عنوان IP مقابل أي اسم مضيف / اسم مجال. استخدم الصيغة التالية للعثور على عنوان IP لاسم مضيف / اسم مجال مستهدف:



$بينغالهدف المضيف



نسلكوب

يستخدم Nslookup على نطاق واسع لحل اسم المضيف إلى عنوان IP. لاستخدام هذا الأمر لبحث IP ، استخدم بناء الجملة التالي:





$nslookup الهدف المضيف

مضيف

يمكن استخدام مضيف أداة سطر أوامر آخر للعثور على عنوان IP مقابل أي اسم مضيف / اسم مجال. لاستخدام هذا الأمر ، استخدم بناء الجملة التالي:



$المضيف الهدف المضيف

أنت

Dig هي أداة سطر أوامر مفيدة أخرى تُستخدم للاستعلام عن مختلف السجلات ذات الصلة بـ DNS. يمكن استخدامه للعثور على عنوان IP مقابل أي اسم مضيف / اسم مجال. استخدم أمر Dig بالطريقة التالية للعثور على عنوان IP مقابل اسم مضيف / اسم مجال محدد.

$أنتالهدف المضيف + قصير

برنامج Bash النصي لحل اسم المضيف لعنوان IP

لاستخدام سكربت bash للبحث عن IP ، اتبع الخطوات التالية:

  1. قم بإنشاء ملف bash باستخدام أي محرر نصوص. هنا سأستخدم محرر Nano لإنشاء نص باسم iplookup.sh .$سودو نانوscript.sh
  1. انسخ والصق الأسطر التالية في ملف البرنامج النصي الخاص بك. لاحظ أنه هنا في هذا النص البرمجي ، أحدد خادم 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}يكون:العنوان $'
    يكون
    آخر
    رما - طرد - قذف 'حدث خطأ'
    يكون
    انتهى
  2. بمجرد الانتهاء من ذلك ، استخدم Ctrl + O و Ctrl + X لحفظ الملف والخروج منه على التوالي.
  3. الآن للعثور على عنوان 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.