Để có được thông tin vị trí địa lý về một địa chỉ IP cụ thể, bạn cần sử dụng một số dịch vụ trực tuyến cung cấp API thích hợp. Bạn nên sử dụng một số dịch vụ công cộng để tránh thủ tục ủy quyền và quản lý khóa API. Một dịch vụ như vậy là FreeGeoIP.net.
Nó cung cấp API HTTP công khai để tìm kiếm vị trí địa lý của địa chỉ IP. Nó sử dụng cơ sở dữ liệu về địa chỉ IP được liên kết với các thành phố cùng với các thông tin liên quan khác như múi giờ, vĩ độ và kinh độ. Điều này rất hữu ích.
Dịch vụ có thể cung cấp kết quả tìm kiếm dưới dạng JSON hoặc XML. Vì vậy, nếu chúng ta kết hợp cuộn tròn với một số trình phân tích cú pháp JSON, chúng ta có thể nhận được thông tin cần thiết.
Tôi sẽ sử dụng trình phân tích cú pháp JSON yêu thích của tôi, jq:
Nó rất nhẹ và nhanh.
Đối với trường hợp của chúng tôi, truy vấn sẽ như sau:
|_+_|Phần 'json' ở đây là định dạng dữ liệu mong muốn. Ngoài JSON, nó có thể là XML hoặc CSV.
Hãy chạy truy vấn với Curl và xem kết quả:
Kết quả là đầu ra JSON thô rất khó đọc. Để cải thiện giao diện của tập kết quả, hãy sử dụng công cụ jq. Kết hợp nó với cuộn tròn như sau:
|_+_|Đầu ra sẽ dễ đọc hơn:
Sử dụng jq, bạn có thể lọc đầu ra và làm cho nó chỉ hiển thị các trường bắt buộc. Lệnh sau sẽ chỉ hiển thị tên quốc gia, vĩ độ và kinh độ:
|_+_|Bạn có thể lưu lệnh này dưới dạng tập lệnh shell sau:
|_+_|Lần tới khi bạn cần lấy thông tin vị trí địa lý, bạn có thể thực thi tập lệnh của mình như thế này:
|_+_|Đó là nó.