במאמר הבא אנו נסתכל כיצד אנו יכולים קבל את המיקום הגיאוגרפי של כתובת ה- IP הציבורית שלנו. נוכל לעשות זאת באמצעות ממשקי API פתוחים וסקריפט bash פשוט, הכל ממסוף אובונטו. כיום לכל המכשירים המחוברים לאינטרנט יש IP, שהיה המזהה שלהם לעולם. כתובת זו היא הכתובת בה נשתמש כדי להשיג את מיקומך.
כשאנחנו גולשים באינטרנט, לכל שרת יש כתובת IP ציבורית, זה מוקצה ישירות לשרת או דרך נתב ששולח תעבורת רשת לשרת זה. כתובות IP מספקות דרך קלה לעקוב אחר המיקום הגיאוגרפי של השרת בעולם. ניתן להשיג זאת על ידי שימוש בשני ממשקי API המסופקים על ידי ipinfo.io e ipvigilante.com בעזרתו נוכל להשיג את מדינת השרת, את שם העיר והקואורדינטות הגיאוגרפיות שלה.
בשורות הבאות נראה כיצד להשיג את מיקום גיאוגרפי של כתובת IP מהטרמינל שעוזר לנו עם תלתלים ו- jq. המטרה העיקרית והשימוש ב cURL הוא אוטומציה של העברת קבצים או רצפי פעולות ללא פיקוח, תוך כדי jq היא שפה פונקציונלית ברמה גבוהה מאוד עם תמיכה במעקב אחורי וניהול של זרמי נתונים JSON.
מיקום גיאוגרפי של כתובת IP מהטרמינל
התקן את Curl ו- jq
כדי להשיג את המיקום הגיאוגרפי של כתובת ה- IP, נצטרך התקן תלתל ו כלי שורת הפקודה jq לעבד את נתוני JSON שהתקבלו מממשקי ה- API של המיקום הגיאוגרפי. כדי להתקין את שניהם, במסוף (Ctrl + Alt + T) יהיה עליכם לכתוב את הפקודה:
sudo apt install curl jq
קבל את כתובת ה- IP הציבורית של השרת
לפני שתקבל את המיקום, אתה צריך דע את כתובת ה- IP הציבורית של השרת אליו אנו מתחברים. לשם כך נשתמש בפקודת cURL הבאה שאיתה נגיש בקשה ipinfo.io מהמסוף (Ctrl + Alt + T) כמוצג להלן:
curl https://ipinfo.io/ip
השג את נתוני המיקום הגיאוגרפי של ה- IP של המערכת שלך בזכות ה- API
לאחר ביצוע הפקודה הקודמת נקבל את כתובת ה- IP הציבורית. ברגע שיהיה לנו את זה, נוכל הגיש בקשה ל- ipvigilante.com לקבלת נתוני מיקום גיאוגרפי. לשם כך נשתמש בפקודה הבאה במסוף (Ctrl + Alt + T). חשוב להחליף את ה- IP הציבורי בזה שהושג בפקודה הקודמת.
curl https://ipvigilante.com/la-dirección-IP
הפוך את שיחת ה- API לאוטומטית באמצעות Script Bash
כדי להפוך את תהליך התקשורת לאוטומטי עם ה- API אליו אנו הולכים ליצור סקריפט בתוך קובץ שנקרא ipgeolocator.sh (השם הוא אופציונלי). ליצירתו נוכל להשתמש בכל עורך לשורת הפקודה איתו כל אחד מרגיש בנוח ביותר.
vim ipgeolocalizador.sh
כשהעורך נפתח, בפנים אתה רק צריך הדבק את השורה מוצג להלן:
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
לאחר ההדבקה, כל שעליך לעשות הוא לשמור את הקובץ ולצאת מהעורך. אחרי זה יהיה צורך הפוך את התסריט להפעלה. אנו הולכים לעשות זאת על ידי כתיבה באותו מסוף:
chmod +x ipgeolocalizador.sh
בשלב זה אנו יכולים הפעל את הסקריפט באופן הבא כדי לקבל את המיקום הגיאוגרפי של ה- IP ציבורי:
./ipgeolocalizador.sh
התסריט שלמעלה מציג את שם העיר והמדינה יחד עם קואורדינטות קו רוחב ואורך משוערות. האמת היא ש אני לא יודע את שולי הטעות שיכולים להיות לו.
אם אינך רוצה לשמור את הפקודה הארוכה לעיל בתוך קובץ, אתה יכול גם להפעיל את אותה פקודה ישירות במסוף (Ctrl + Alt + T):
curl -s https://ipvigilante.com/$(curl -s https://ipinfo.io/ip) | jq '.data.latitude, .data.longitude, .data.city_name, .data.country_name'
במאמר קצר זה ראינו כיצד קבל מיקום גיאוגרפי של IP מאובונטו באמצעות פקודות מסוף ותלתל ו- jq. תוכל לקבל מידע נוסף אודות jq או בערך cURL במאמרים המקבילים שלהם בוויקיפדיה.