หากต้องการรับข้อมูลตำแหน่งทางภูมิศาสตร์เกี่ยวกับที่อยู่ IP เฉพาะ คุณต้องใช้บริการออนไลน์บางอย่างซึ่งมี API ที่เหมาะสม เป็นความคิดที่ดีที่จะใช้บริการสาธารณะเพื่อหลีกเลี่ยงขั้นตอนการอนุญาตและการจัดการคีย์ API บริการอย่างหนึ่งก็คือ ฟรีจีโอไอพี.เน็ต
มี HTTP API สาธารณะเพื่อค้นหาตำแหน่งทางภูมิศาสตร์ของที่อยู่ IP ใช้ฐานข้อมูลที่อยู่ IP ที่เกี่ยวข้องกับเมืองพร้อมกับข้อมูลที่เกี่ยวข้องอื่นๆ เช่น เขตเวลา ละติจูด และลองจิจูด สิ่งนี้มีประโยชน์มาก
บริการสามารถให้ผลการค้นหาเป็น JSON หรือ XML ดังนั้นหากเรารวม curl เข้ากับตัวแยกวิเคราะห์ JSON เราก็จะได้รับข้อมูลที่จำเป็น
ฉันจะใช้ตัวแยกวิเคราะห์ JSON ที่ฉันชื่นชอบ jq:
มันเบาและรวดเร็วมาก
สำหรับกรณีของเรา แบบสอบถามควรเป็นดังนี้:
-ส่วน 'json' ที่นี่คือรูปแบบข้อมูลที่ต้องการ นอกจาก JSON แล้ว อาจเป็น XML หรือ CSV ก็ได้
มาเรียกใช้แบบสอบถามด้วย curl และดูผลลัพธ์:
ผลลัพธ์ที่ได้คือเอาต์พุต JSON แบบ Raw ซึ่งอ่านยาก เพื่อปรับปรุงรูปลักษณ์ของชุดผลลัพธ์ เรามาใช้เครื่องมือ jq กัน รวมเข้ากับขดดังนี้:
-ผลลัพธ์จะอ่านง่ายขึ้น:
เมื่อใช้ jq คุณสามารถกรองเอาต์พุตและทำให้แสดงเฉพาะฟิลด์ที่จำเป็นเท่านั้น คำสั่งต่อไปนี้จะแสดงเฉพาะชื่อประเทศ ละติจูด และลองจิจูด:
-คุณสามารถบันทึกคำสั่งนี้เป็นเชลล์สคริปต์ต่อไปนี้:
-ครั้งต่อไปที่คุณต้องการรับข้อมูลตำแหน่งทางภูมิศาสตร์ คุณสามารถรันสคริปต์ได้ดังนี้:
-แค่นั้นแหละ.