קבל מידע מיקום גיאוגרפי של כתובת IP ב-Bash בלינוקס
לפעמים אתה צריך לקבל את מידע המיקום הגיאוגרפי עבור כתובת IP במהירות. בלינוקס, אתה יכול להשתמש בכוח של אפליקציות מסוף כדי לחסוך זמן ולאחזר מידע זה במהירות. בואו נראה איך אפשר לעשות את זה.
פרסומת
כדי לקבל מידע על מיקום גיאוגרפי לגבי כתובת IP ספציפית, עליך להשתמש בשירות מקוון כלשהו המספק את ה-API המתאים. מומלץ להשתמש בשירות ציבורי כלשהו כדי להימנע מהליך ההרשאה וניהול מפתחות ה-API. שירות אחד כזה הוא FreeGeoIP.net.
הוא מספק HTTP API ציבורי לחיפוש מיקום גיאוגרפי של כתובות IP. הוא משתמש במסד נתונים של כתובות IP המשויכות לערים יחד עם מידע רלוונטי אחר כמו אזור זמן, קו רוחב וקווי אורך. זה מאוד שימושי.
השירות יכול לספק תוצאות חיפוש כ-JSON או XML. אז אם נשלב תלתל עם מנתח JSON כלשהו, נוכל לקבל את המידע הנדרש.
אני אשתמש במנתח ה-JSON האהוב עליי, jq:
זה מאוד קל ומהיר.
במקרה שלנו, השאילתה צריכה להיות כדלקמן:
http://freegeoip.net/json/119.94.116.145
החלק "json" כאן הוא פורמט הנתונים הרצוי. מלבד JSON, זה יכול להיות XML או CSV.
בואו נריץ את השאילתה עם curl ונראה את הפלט:
התוצאה היא פלט JSON גולמי שקשה לקרוא. כדי לשפר את המראה של ערכת התוצאות, הבה נשתמש בכלי jq. שלב אותו עם תלתל באופן הבא:
סִלְסוּל http://freegeoip.net/json/119.94.116.145|jq
הפלט יהיה קל יותר לקריאה:
באמצעות jq, אתה יכול לסנן את הפלט ולגרום לו להציג רק את השדות הנדרשים. הפקודה הבאה תציג רק את שם המדינה, קו הרוחב וקווי האורך:
סִלְסוּל http://freegeoip.net/json/119.94.116.145|jq -r '.country_name,.latitude,.longitude'
אתה יכול לשמור פקודה זו כסקריפט המעטפת הבא:
#!/bin/sh. תלתל -s http://freegeoip.net/json/$1|jq -r '.country_name,.latitude,.longitude'
בפעם הבאה שתצטרך לקבל מידע על מיקום גיאוגרפי, תוכל לבצע את הסקריפט שלך כך:
./geo.sh IP_address
זהו זה.