მიიღეთ IP მისამართის გეოლოკაციის ინფორმაცია Bash-ში Linux-ში
ზოგჯერ თქვენ გჭირდებათ სწრაფად მიიღოთ გეოლოკაციის ინფორმაცია IP მისამართისთვის. Linux-ში შეგიძლიათ გამოიყენოთ კონსოლის აპების ძალა თქვენი დროის დაზოგვისა და ამ ინფორმაციის სწრაფად მისაღებად. ვნახოთ, როგორ შეიძლება ამის გაკეთება.
რეკლამა
კონკრეტული IP მისამართის შესახებ გეო მდებარეობის ინფორმაციის მისაღებად, თქვენ უნდა გამოიყენოთ ონლაინ სერვისი, რომელიც უზრუნველყოფს შესაბამის API-ს. კარგი იდეაა გამოიყენოთ ზოგიერთი საჯარო სერვისი ავტორიზაციის პროცედურისა და API გასაღების მართვის თავიდან ასაცილებლად. ერთ-ერთი ასეთი სერვისია FreeGeoIP.net.
ის უზრუნველყოფს საჯარო HTTP API-ს IP მისამართების გეოლოკაციის მოსაძიებლად. ის იყენებს IP მისამართების მონაცემთა ბაზას, რომლებიც დაკავშირებულია ქალაქებთან სხვა შესაბამის ინფორმაციას, როგორიცაა დროის ზონა, გრძედი და განედი. ეს ძალიან სასარგებლოა.
სერვისს შეუძლია უზრუნველყოს ძიების შედეგები JSON ან XML სახით. ასე რომ, თუ curl-ს გავაერთიანებთ 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 '.ქვეყნის_სახელი,.გრძედი,.გრძედი'
თქვენ შეგიძლიათ შეინახოთ ეს ბრძანება, როგორც შემდეგი shell სკრიპტი:
#!/bin/sh. დახვევა -ს http://freegeoip.net/json/$1|jq -r '.ქვეყნის_სახელი,.გრძედი,.გრძედი'
შემდეგ ჯერზე, როდესაც დაგჭირდებათ გეოლოკაციის ინფორმაციის მიღება, შეგიძლიათ შეასრულოთ თქვენი სკრიპტი ასე:
./geo.sh IP_მისამართი
Ის არის.