در این مقاله، ما میخواهیم به شما نحوه پیدا کردن موقعیت جغرافیایی IP Address یک سرور لینوکس را با استفاده از API های باز و یک bash script ساده در ترمینال، به شما آموزش دهیم. در اینترنت، هر سروری دارای یک IP آدرس public میباشد، که به صورت مستقیم به آن سرور یا از طریق یک route که ترافیک شبکه را به سمت آن سرور ارسال میکند، اختصاص داده شده است.
IP Address یک راه ساده برای ردیابی موقعیت یک سرور در هر جای دنیا با استفاده از دو API مفید ارائه شده توسط ipinfo.io و ipvigilante.com برای گرفتن شهر، ایالت و کشور میزبان یک سرور را فراهم می آورد.
نصب Curl و jq
برای گرفتن موقعیت جغرافیایی IP Address یک سرور، ما احتیاج داریم دستور curl و jq از ابزارهای خط فرمان برای پردازش داده های JSON از API های منطقه جغرافیایی میباشد، را نصب کنیم.
پیدا کردن IP Address پابلیک سرورها
برای گرفتن IP address پابلیک سرورها، از دستور curl زیر برای ایجاد یک درخواست API به ipinfo.io در ترمینال تان استفاده کنید.
دریافت اطلاعات موقعیت IP از API
هنگامیکه شما IP آدرس پابلیک سرور را دریافت کردید، میتوانید یک درخواست API به ipvigilante.com برای جمع آوری اطلاعات جغرافیایی با استفاده از دستور زیر بدهید. مطمئن شوید IP آدرس پابلیک سرورها را با <your ip address> جایگزین کنید. (در این دستور آدرس ip مودم ADSL من هست و این آدرس ها را پشتیبانی نمیکند که نام شهر و ایالت و غیره را نمایش دهد، ولی در سرورهای اختصاصی حتما اطلاعات کامل را نمایش میدهد.)
اتوماتیک کردن API با استفاده از Bash Script
اکنون برای اتوماتیک کردن پروسه API، ما میخواهیم یک اسکریپتی به نام getipgeoloc.sh را (شما میتوانید هر اسم دیگری که میخواهید را وارد کنید) با استفاده از یک ادیتور متن مورد علاقه تان ایجاد کنیم.
سپس دستور طولانی زیر را در آن کپی کنید.
فایل را ذخیره کنید و با استفاده از دستور زیر به آن مجوز اجرا شدن را بدهید.
در نهایت، برای دریافت موقعیت جغرافیایی IP سرور لینوکس تان اسکریپت را همانند تصویر زیر اجرا کنید.
اسکریپت بالا نام شهر و کشور را با مختصات طول و عرض جغرافیایی تقریبی نشان داده است.
همچنین شما می توانید دستور بالا را بدون ذخیره کردن آن در یک اسکریپت به صورت زیر اجرا کنید.
همچنین توصیه میشود مطالعه کنید :
پیدا کردن IP Address هاست های موجود و متصل در شبکه با Nmap
نحوه پیدا کردن پورت های باز در سرور لینوکس
دستور nc برای چک کردن پورت های باز ریموت در لینوکس
دستور netstat برای مدیریت شبکه در لینوکس
موفق باشید/...
IP Address یک راه ساده برای ردیابی موقعیت یک سرور در هر جای دنیا با استفاده از دو API مفید ارائه شده توسط ipinfo.io و ipvigilante.com برای گرفتن شهر، ایالت و کشور میزبان یک سرور را فراهم می آورد.
نصب Curl و jq
برای گرفتن موقعیت جغرافیایی IP Address یک سرور، ما احتیاج داریم دستور curl و jq از ابزارهای خط فرمان برای پردازش داده های JSON از API های منطقه جغرافیایی میباشد، را نصب کنیم.
کد HTML:
$ sudo apt install curl jq #Ubuntu/Debian $ sudo yum install curl jq #CentOS/RHEL $ sudo dnf install curl jq #Fedora 22+ $ sudo zypper install curl jq #openSUSE
پیدا کردن IP Address پابلیک سرورها
برای گرفتن IP address پابلیک سرورها، از دستور curl زیر برای ایجاد یک درخواست API به ipinfo.io در ترمینال تان استفاده کنید.
کد HTML:
$ curl https://ipinfo.io/ip
دریافت اطلاعات موقعیت IP از API
هنگامیکه شما IP آدرس پابلیک سرور را دریافت کردید، میتوانید یک درخواست API به ipvigilante.com برای جمع آوری اطلاعات جغرافیایی با استفاده از دستور زیر بدهید. مطمئن شوید IP آدرس پابلیک سرورها را با <your ip address> جایگزین کنید. (در این دستور آدرس ip مودم ADSL من هست و این آدرس ها را پشتیبانی نمیکند که نام شهر و ایالت و غیره را نمایش دهد، ولی در سرورهای اختصاصی حتما اطلاعات کامل را نمایش میدهد.)
کد HTML:
$ curl https://ipvigilante.com/<your ip address>
اتوماتیک کردن API با استفاده از Bash Script
اکنون برای اتوماتیک کردن پروسه API، ما میخواهیم یک اسکریپتی به نام getipgeoloc.sh را (شما میتوانید هر اسم دیگری که میخواهید را وارد کنید) با استفاده از یک ادیتور متن مورد علاقه تان ایجاد کنیم.
کد HTML:
$ vim getipgeoloc.sh
کد HTML:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
کد HTML:
$ chmod +x getipgeoloc.sh
کد HTML:
$ ./getipgeoloc.sh
اسکریپت بالا نام شهر و کشور را با مختصات طول و عرض جغرافیایی تقریبی نشان داده است.
همچنین شما می توانید دستور بالا را بدون ذخیره کردن آن در یک اسکریپت به صورت زیر اجرا کنید.
کد HTML:
$ curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
همچنین توصیه میشود مطالعه کنید :
پیدا کردن IP Address هاست های موجود و متصل در شبکه با Nmap
نحوه پیدا کردن پورت های باز در سرور لینوکس
دستور nc برای چک کردن پورت های باز ریموت در لینوکس
دستور netstat برای مدیریت شبکه در لینوکس
موفق باشید/...