Få Geo-placering af en hvilken som helst IP-adresse eller værtsnavn i PowerShell

FreeGeoIP.net er en gratis webapp, der leverer en offentlig HTTP API til softwareudviklere til at søge i geo-placering af en given IP-adresse eller værtsnavn. Den bruger en database med IP-adresser i forbindelse med byer sammen med nogle andre relevante oplysninger såsom tidszone, breddegrad og længdegrad. Du kan levere et værtsnavn eller en IP-adresse for at få resultatet i 3-formater, CSV, XML og JSON .

Syntaxen er simpelthen sådan, og du kan bruge den rigtigt i nogen af ​​de browsere, du bruger.

http://freegeoip.net/{format}/{IP_or_hostname}

in which, format can be one of "CSV", "XML", or "JSON"

For eksempel, for at få Geolocation af vores webserver i XML i en browser, gør du:

freegeoip.net_xml_www.nextofwindows.com - 2015-04-23 11_33_30

Lad os nu se, hvordan vi kan gøre det på PowerShell-måde.

Påberåbe-RestMethod er en PowerShell-cmdlet, der beskæftiger sig med HTTP / HTTPS-anmodninger relateret til repræsentative statsoverførsels (REST) ​​webtjenester, der returnerer rigt strukturerede data, f.eks. XML eller JSON. Det er en perfekt kandidat til at udføre opkaldet og vise resultatet på en pænt formateret måde.

Så for at få geolocation information fra vores webserver i PowerShell, kan du bare køre følgende cmdlet i PowerShell vinduet.

Invoke-RestMethod -Method Get -Uri http://freegeoip.net/xml/www.nextofwindows.com / | Vælg-objekt -Property InnerXML | Ud-Gridview

Invoke-RestMethod -Method Get -URI http ___ freegeoip.net_xml_www.nextofwindows.co - 2015-04-23 14_06_26

For at sammensætte et PowerShell-script, der kontrollerer en given IP-adresse og værtsnavn, kan du prøve følgende koder.

#requires -Version 3 $ source = [streng] $ args [0] $ infoService = "http://freegeoip.net/xml/$source" $ geoip = Invoke-RestMethod -Metode Get -URI $ infoService $ geoip.Response

Windows PowerShell ISE - 2015-04-23 14_11_04

Du kan også downloade det samme script nedenfor for at gemme nogle af dine tider. Download den til din lokale computer og kør den i PowerShell-vinduet med følgende brug:

.ipgeo.ps1 {ip_or_hostname}

ikon
Få oplysninger om geografisk placering af enhver IP eller værtsnavn 0.18 KB
Hent

Et alternativ

Nekudo er en anden gratis IP geolocation API, som vi kan bruge til at arkivere dette. HTTP Få forespørgselsskemaet for at bruge tjenesten er sådan noget:

http://geoip.nekudo.com/api/{ip}

Derefter kan du bruge Invoke-RestMethod cmdlet piped med Select-Object for at hente oplysningerne.

Invoke-RestMethod -Method Get -Uri "http://geoip.nekudo.com/api/{ip}" | Vælg-Objekt-UdvidelseProperty Land -Property By, IP, Placering

Her er her Googles offentlige DNS-tjeneste lever:

PowerShell-ip-geolocation-med-nekudo

Hvis du vil finde ud af geolokationen af ​​et værtsnavn, skal du løse DNS-info og gemme det først i en variabel.

$ IPAddress = [Net.Dns] :: GetHostByName ('domænenavn') .Adresseliste.IPAddressToString

Her er her Microsofts hjemmeside lever:

PowerShell-ip-geolocation-med-nekudo-fra-en-værtsnavn

Da datasættet, du hentede fra Nekudos API, også indeholder koordinaterne for breddegrad og længdegrad, kan du finde ud af, hvor det faktisk bruger Google Maps.

For at pakke det hele op finder følgende kode oplysningerne om geolokalisering om din offentlige IP og åbner den i Google Maps.

$ ip = Invoke-RestMethod -Uri http://checkip.amazonaws.com/
$ geo = Invoke-RestMethod -Uri "http://geoip.nekudo.com/api/$ IP "$ latitude = $ geo.Location.Latitude $ longitude = $ geo.Location.Longitude $ url ="https://www.google.com/maps/preview/@$ breddegrad, $ længdegrad, 12z "Start-Process -FilePath $ url

Et andet alternativ

IPInfo.io er en anden webservice, som du kan bruge forespørgslen til oplysninger om IP'en. Følgende kommando returnerer detaljerede geografiske oplysninger om din nuværende IP-adresse.

Invoke-RestMethod -Uri 'http://ipinfo.io'

For at søge oplysninger om en bestemt IP-adresse skal du tilføje / {ipaddress} i slutningen. F.eks. Afslører følgende kommando geo-lokaliseringsoplysningerne om Google Public DNS.

Invoke-RestMethod -Uri 'http://ipinfo.io/8.8.8.8'

PowerShell-geolocation-med-ipinfo

Kilde

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.