Minsan kailangan mong makuha ang impormasyong geolocation para sa isang IP address nang mabilis. Sa Linux, maaari mong gamitin ang lakas ng mga console app upang makatipid ng iyong oras at makuha nang mabilis ang impormasyong ito. Tingnan natin kung paano ito magagawa.
Anunsyo
Upang makuha ang impormasyong lokasyon ng geo tungkol sa isang tukoy na IP address, kailangan mong gumamit ng ilang serbisyo sa online na nagbibigay ng naaangkop na API. Magandang ideya na gumamit ng ilang serbisyo sa publiko upang maiwasan ang pamamaraan ng pahintulot at ang pamamahala ng key ng API. Isa sa ganoong serbisyo ay FreeGeoIP.net.
Nagbibigay ito ng isang pampublikong HTTP API upang maghanap sa geolocation ng mga IP address. Gumagamit ito ng isang database ng mga IP address na nauugnay sa mga lungsod kasama ang iba pang nauugnay na impormasyon tulad ng time zone, latitude at longitude. Ito ay napaka kapaki-pakinabang.
Maaaring magbigay ang serbisyo ng mga resulta sa paghahanap bilang JSON o XML. Kaya, kung pagsamahin namin ang curl sa ilang JSON parser, makakakuha kami ng kinakailangang impormasyon.
bakit ang mga tao ng paglalagay ng mga numero sa kanilang mga kwento snapchat
Gagamitin ko ang aking paboritong JSON parser, jq:
Napakagaan nito at mabilis.
Para sa aming kaso, ang query ay dapat na ang mga sumusunod:
http://freegeoip.net/json/119.94.116.145
Ang bahaging 'json' dito ay ang nais na 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 hilaw na output ng JSON na mahirap basahin. Upang mapabuti ang hitsura ng itinakdang resulta, gamitin natin ang jq tool. Pagsamahin ito sa kulot tulad ng sumusunod:
curl http://freegeoip.net/json/119.94.116.145agwayjq
Ang output ay magiging mas madaling basahin:
Gamit ang jq, maaari mong i-filter ang output at gawin itong ipakita lamang sa mga kinakailangang patlang. Ang sumusunod na utos ay ipapakita lamang ang pangalan ng bansa, latitude at longitude:
curl http://freegeoip.net/json/119.94.116.145agwayjq -r '.country_name, .latitude, .longitude'
Maaari mong i-save ang utos na ito bilang sumusunod na shell script:
#! / bin / sh curl -s http://freegeoip.net/json/LINEjq -r '.country_name, .latitude, .longitude'
Sa susunod na kailangan mong makakuha ng impormasyon sa geolocation, maaari mong maisagawa ang iyong script tulad nito:
./geo.sh IP_address
Ayan yun.