Đôi khi bạn cần lấy thông tin vị trí địa lý cho một địa chỉ IP một cách nhanh chóng. Trong Linux, bạn có thể sử dụng sức mạnh của các ứng dụng bảng điều khiển để tiết kiệm thời gian và truy xuất thông tin này nhanh chóng. Hãy xem làm thế nào nó có thể được thực hiện.
Quảng cáo
Để 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 trong những dịch vụ đó là FreeGeoIP.net.
Nó cung cấp một API HTTP công khai để tìm kiếm vị trí địa lý của các địa chỉ IP. Nó sử dụng cơ sở dữ liệu đị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 curl 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.
có thể kiểm soát ngôi nhà của google que cứu hỏa
Tôi sẽ sử dụng trình phân tích cú pháp JSON yêu thích của mình, jq:
Nó rất nhẹ và nhanh chóng.
Đối với trường hợp của chúng tôi, truy vấn sẽ như sau:
http://freegeoip.net/json/119.94.116.145
Phần 'json' ở đây là định dạng dữ liệu mong muốn. Bên cạnh 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 sự xuất hiệ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 tóc như sau:
curl http://freegeoip.net/json/119.94.116.145|jq
Đầ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 độ:
curl http://freegeoip.net/json/119.94.116.145|jq -r '.country_name, .latitude, .longitude'
Bạn có thể lưu lệnh này dưới dạng tập lệnh shell sau:
#! / bin / sh curl -s http://freegeoip.net/json/|jq -r '.country_name, .latitude, .longitude'
Lần tới khi bạn cần nhận thông tin vị trí địa lý, bạn có thể thực thi tập lệnh của mình như sau:
./geo.sh IP_address
Đó là nó.