منبع اصلی نوشتار زیر در این لینک قرار دارد

چرا گنو/لینوکس رو دوست دارم؟ چون خط فرمانش یه ابزار کامله

جریان اینه که می‌خوام آی پی خارجی شبکه رو داشته باشم. یه راه حل پرسش از سایتای خارج از شبکست. اما روتر شبکه هم حتما این اطلاعات رو داره. مساله فقط اینه که بتونم استخراجش کنم.

خوب آی پی شبکه رو میشه از روی صفحه روتر دید. این آدرس اون صفحست: ۱۹۲٫۱۶۸٫۱٫۲۵۴/status/status_deviceinfo.htm و برای رفتن به اون صفحه هم یوزر (admin) پسورد (۱۲۳۴) می‌خواد. حالا باید یه جوری به خط فرمان بگم که این صفحه رو بخونه. برای این کار از دستور curl استفاده می‌کنم:

curl -s admin:1234@192.168.1.254/status/status_deviceinfo.htm

سوییچ s می‌گه مرراحل دریافت نشون داده نشه. خروجی این دستور یه سری کد html اه. بعد باید تو خروجی دنبال IP Address بگردم. چون خود آی پی تو خط بعد از خطی که کلمه IP Address توشه، با سوییچ A1 می‌م هر جا این بود، خط بعدیش رو هم نمایش بده. تا حالا دستورمون این شده:

curl -s admin:1234@192.168.1.254/status/status_deviceinfo.htm | grep 'IP Address' -A1

توی خروجی، آی پی تو خط آخره، پس باید خط آخر رو بکشم بیرون:

curl -s admin:1234@192.168.1.254/status/status_deviceinfo.htm | grep 'IP Address' -A1 
      | tail -n1

حالا یه خط دارم که آی پی توشه، کد html هم توشه. کد html از کاراکتر > شروع می‌شه. با دستور کات می‌گم رشته ورودی رو با اون کاراکتر بشکون و فیلد اول رو برگردون:

curl -s admin:1234@192.168.1.254/status/status_deviceinfo.htm | grep 'IP Address' -A1 
      | tail -n1 | cut -d'<' -f1

والسلام. آی پیم رو دارم. با این که از قبل کلا می‌دونستم این دستورا هستن، بازم اونا رو با سرچ و سعی و خطا کنار هم چیدم. ولی کل فرایند ۱۰ دقیقه بیشتر ازم وقت نگرفت.



برچسب ها : , , , ,

به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد