Iegūstiet informāciju par IP adreses ģeogrāfisko atrašanās vietu Bash operētājsistēmā Linux
Dažreiz jums ātri jāiegūst IP adreses ģeogrāfiskās atrašanās vietas informācija. Operētājsistēmā Linux varat izmantot konsoles lietotņu iespējas, lai ietaupītu laiku un ātri izgūtu šo informāciju. Apskatīsim, kā to var izdarīt.
Reklāma
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:
http://freegeoip.net/json/119.94.116.145
“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:
čokurošanās http://freegeoip.net/json/119.94.116.145|jq
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:
čokurošanās http://freegeoip.net/json/119.94.116.145|jq -r '.valsts_nosaukums,.platums,.garums'
Šo komandu var saglabāt kā šādu čaulas skriptu:
#!/bin/sh. čokurošanās -s http://freegeoip.net/json/$1|jq -r '.valsts_nosaukums,.platums,.garums'
Nākamreiz, kad jums būs jāiegūst informācija par ģeogrāfisko atrašanās vietu, varat izpildīt skriptu šādi:
./geo.sh IP_adrese
Tieši tā.