Lai iegūtu ģeogrāfiskās atrašanās vietas informāciju par konkrētu IP adresi, jums ir jāizmanto kāds tiešsaistes pakalpojums, kas nodrošina atbilstošu API. Ieteicams izmantot kādu sabiedrisko pakalpojumu, lai izvairītos no autorizācijas procedūras un API atslēgas pārvaldības. Viens no šādiem pakalpojumiem ir FreeGeoIP.net.
Tas nodrošina publisku HTTP API, lai meklētu IP adrešu ģeogrāfisko atrašanās vietu. Tas izmanto ar pilsētām saistīto IP adrešu datu bāzi, kā arī citu būtisku informāciju, piemēram, laika joslu, platumu un garumu. Tas ir ļoti noderīgi.
Pakalpojums var nodrošināt meklēšanas rezultātus kā JSON vai XML. Tātad, ja mēs apvienojam curl ar kādu JSON parsētāju, mēs varam iegūt nepieciešamo informāciju.
Es izmantošu savu iecienītāko JSON parsētāju, jq:
Tas ir ļoti viegls un ātrs.
Mūsu gadījumā vaicājumam ir jābūt šādam:
|_+_|“Json” daļa šeit ir vēlamais datu formāts. Papildus JSON tas var būt XML vai CSV.
Izpildīsim vaicājumu ar curl un redzēsim izvadi:
Rezultāts ir neapstrādāta JSON izvade, kuru ir grūti nolasīt. Lai uzlabotu rezultātu kopas izskatu, izmantosim rīku jq. Apvienojiet to ar čokurošanos šādi:
|_+_|Izvade būs vieglāk lasāma:
Izmantojot jq, varat filtrēt izvadi un likt tai rādīt tikai nepieciešamos laukus. Šī komanda parādīs tikai valsts nosaukumu, platumu un garumu:
|_+_|Šo komandu var saglabāt kā šādu čaulas skriptu:
|_+_|Nākamreiz, kad jums būs jāiegūst informācija par ģeogrāfisko atrašanās vietu, varat izpildīt skriptu šādi:
|_+_|Tieši tā.