linux - طرق الكشف عن عنوان إب العام في باش




bash shell (6)

كجزء من البرنامج النصي التثبيت، أريد أن أجعل "تخمين المتعلمين" حول آلات الملكية الفكرية عنوان إب. يجب أن تكون قوية قدر الإمكان، والعمل على مجموعة متنوعة من المضيفين والمنصات. هنا مثال:

https://gist.github.com/4669037

يستخدم هذا البرنامج النصي 3 طرق ثم القيم الافتراضية لقيمة /etc/hostname . لقد اختبرت هذا فقط على أوبونتو حتى الآن. هل من المرجح أن يعمل هذا على عمليات توزيع أخرى؟ وهل هناك طرق إضافية يمكنني إضافتها؟


curl ifconfig.me سيكون الخيار الأفضل، في حال لم يكن لديك حليقة:

wget -qO- ifconfig.me/ip



جرب هذا الأمر:

wget -O - -q icanhazip.com

ما مقدار الملكية الفكرية العامة التي تبحث عنها؟ ماذا لو كان الجهاز وراء نات؟

  • wget / netcat / netcat ( nc ) <URL> الذي يحتوي على عنوان الطالب: يجب أن يعمل معظم الوقت، ولكن قد يكون الموقع غير قابل للوصول من الجهاز (سواء كان جدار الحماية أو عدم توفر مؤقت / دائم). ستحصل على أكبر قدر ممكن من الملكية الفكرية العامة.

  • ifconfig : يجب تشغيل كجذر، وإلا سيكون لديك لمحاولة /sbin/ifconfig أو /usr/sbin/ifconfig كذلك. ماذا لو كان الجهاز لديه المزيد من نيك؟ كيف يمكنك معرفة ما هي الملكية الفكرية؟ ماذا لو تم استخدام IPv6 فقط على شبكة لان؟ في أي حال، سوف تحصل على أقل إب العام يمكنك (وربما واحد خاطئ إذا تم تكوين المزيد من واجهات على الجهاز - الذي هو الحال في هذه الأيام مع افتراضية في كل مكان باستخدام أجهزة الصنبور الشبكة و / أو).

  • /etc/hostname : لا تحتاج إلى وجود، على العديد من الأنظمة هو /etc/HOSTNAME ، وأنه لا يحتوي على عنوان إب بدلا من ذلك يجب أن يحتوي على اسم المضيف (عادة فكدن).

والنقطة هي أن الطرق التي يمكن أن تفشل بها عديدة، وربما عليك أن تنظر إما أ) تحديد أكثر تحديدا ما هي الأنظمة التي تستهدفها أو ب) ما إذا كنت حقا بحاجة إلى معرفة الملكية الفكرية على الإطلاق - هو الحل الذي يبدو أن العمل في حالات بسيطة تستحق استخدامها عندما فشلت بشكل فادح في الإعداد أكثر تعقيدا قليلا؟ إذا كنت تعتقد أنك في حاجة إلى إب، وإعداد طريقة للتعامل مع الإخفاقات بأمان في الحالات التي كنت إما لا تحصل على إب على الإطلاق أو تحصل على خطأ واحد.


استخدام واجهة برمجة تطبيقات إبيفي :

curl 'https://api.ipify.org?format=json'

باش سكريبت:

#!/bin/bash

ip=$(curl -s https://api.ipify.org)
echo "My public IP address is: $ip"

باستخدام باش فقط (مع مساعدة من icanhazip.com ):

exec 3<>/dev/tcp/icanhazip.com/80 
echo -e 'GET / HTTP/1.0\r\nhost: icanhazip.com\r\n\r' >&3 
while read i
do
 [ "$i" ] && myip="$i" 
done <&3 
echo "$myip"

يفتح باش فتح مأخذ توصيل إلى إكانهازيب ويرسل طلب هتب، يتم إرجاع عنوان إب على آخر سطر غير فارغ من البيانات التي تم إرجاعها. (السطور السابقة هي رؤوس هتب)

هذا يتجنب الحاجة إلى العميل هتب مثل وجيت أو حليقة.





centos