บางครั้งคุณต้องได้รับข้อมูลตำแหน่งทางภูมิศาสตร์สำหรับที่อยู่ IP อย่างรวดเร็ว ใน Linux คุณสามารถใช้พลังของแอปคอนโซลเพื่อประหยัดเวลาและดึงข้อมูลนี้ได้อย่างรวดเร็ว มาดูกันว่าทำได้อย่างไร
การโฆษณา
ในการรับข้อมูลตำแหน่งทางภูมิศาสตร์เกี่ยวกับที่อยู่ IP เฉพาะคุณต้องใช้บริการออนไลน์บางอย่างซึ่งมี API ที่เหมาะสม เป็นความคิดที่ดีที่จะใช้บริการสาธารณะบางอย่างเพื่อหลีกเลี่ยงขั้นตอนการอนุญาตและการจัดการคีย์ API หนึ่งในบริการดังกล่าวคือ FreeGeoIP.net
มี HTTP API สาธารณะเพื่อค้นหาตำแหน่งทางภูมิศาสตร์ของที่อยู่ IP ใช้ฐานข้อมูลของที่อยู่ IP ที่เชื่อมโยงกับเมืองพร้อมกับข้อมูลที่เกี่ยวข้องอื่น ๆ เช่นเขตเวลาละติจูดและลองจิจูด สิ่งนี้มีประโยชน์มาก
บริการสามารถให้ผลการค้นหาเป็น JSON หรือ XML ดังนั้นหากเรารวม curl กับตัวแยกวิเคราะห์ JSON เราจะได้รับข้อมูลที่ต้องการ
instagram ไม่ได้โพสต์ลงเพจธุรกิจ facebook
ฉันจะใช้ตัวแยกวิเคราะห์ JSON ที่ชื่นชอบ jq:
มีน้ำหนักเบาและรวดเร็วมาก
สำหรับกรณีของเราแบบสอบถามควรเป็นดังนี้:
http://freegeoip.net/json/119.94.116.145
ส่วน 'json' ที่นี่คือรูปแบบข้อมูลที่ต้องการ นอกจาก JSON แล้วยังสามารถเป็น XML หรือ CSV
ลองเรียกใช้แบบสอบถามด้วย curl และดูผลลัพธ์:
ผลลัพธ์คือเอาต์พุต JSON แบบดิบซึ่งอ่านยาก ในการปรับปรุงลักษณะที่ปรากฏของชุดผลลัพธ์ให้ใช้เครื่องมือ jq รวมเข้ากับ curl ดังนี้:
curl http://freegeoip.net/json/119.94.116.145|jq
ผลลัพธ์จะอ่านง่ายขึ้น:
การใช้ jq คุณสามารถกรองเอาต์พุตและทำให้แสดงเฉพาะฟิลด์ที่ต้องการ คำสั่งต่อไปนี้จะแสดงเฉพาะชื่อประเทศละติจูดและลองจิจูด:
curl http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
คุณสามารถบันทึกคำสั่งนี้เป็นเชลล์สคริปต์ต่อไปนี้:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.country_name, .latitude, .longitude'
ในครั้งต่อไปที่คุณต้องการรับข้อมูลตำแหน่งทางภูมิศาสตร์คุณสามารถเรียกใช้สคริปต์ของคุณได้ดังนี้:
./geo.sh IP_address
แค่นั้นแหละ.