Upang makuha ang impormasyon ng geo location tungkol sa isang partikular na IP address, kailangan mong gumamit ng ilang online na serbisyo na nagbibigay ng naaangkop na API. Magandang ideya na gumamit ng ilang pampublikong serbisyo upang maiwasan ang pamamaraan ng pahintulot at ang pamamahala ng key ng API. Ang isa sa gayong serbisyo ay FreeGeoIP.net.
Nagbibigay ito ng pampublikong HTTP API upang maghanap sa geolocation ng mga IP address. Gumagamit ito ng database ng mga IP address na nauugnay sa mga lungsod kasama ng iba pang nauugnay na impormasyon tulad ng time zone, latitude at longitude. Ito ay lubhang kapaki-pakinabang.
Ang serbisyo ay maaaring magbigay ng mga resulta ng paghahanap bilang JSON o XML. Kaya, kung pagsasamahin natin ang curl sa ilang JSON parser, makukuha natin ang kinakailangang impormasyon.
Gagamitin ko ang aking paboritong JSON parser, jq:
Ito ay napakagaan at mabilis.
Para sa aming kaso, ang query ay dapat na ang mga sumusunod:
|_+_|Ang bahaging 'json' dito ay ang gustong format ng data. Bukod sa JSON, maaari itong XML o CSV.
Patakbuhin natin ang query gamit ang curl at tingnan ang output:
Ang resulta ay raw JSON output na mahirap basahin. Upang mapabuti ang hitsura ng set ng resulta, gamitin natin ang jq tool. Pagsamahin ito sa curl tulad ng sumusunod:
|_+_|Ang output ay magiging mas madaling basahin:
Gamit ang jq, maaari mong i-filter ang output at gawin itong ipakita lamang ang mga kinakailangang field. Ang sumusunod na command ay magpapakita lamang ng pangalan ng bansa, latitude at longitude:
|_+_|Maaari mong i-save ang command na ito bilang sumusunod na shell script:
|_+_|Sa susunod na kailangan mong makakuha ng impormasyon sa geolocation, maaari mong isagawa ang iyong script tulad nito:
|_+_|Ayan yun.