Отримання географічного розташування будь-якої IP-адреси або імені хоста в PowerShell

FreeGeoIP.net це безкоштовна веб-програма, яка надає публічний HTTP-API для розробників програмного забезпечення для пошуку географічного розташування будь-якої заданої IP-адреси або імені хоста. Він використовує базу даних IP-адрес, пов'язаних із містами, а також якусь іншу відповідну інформацію, таку як часовий пояс, широту та довготу тощо. Ви можете надати ім'я хосту або IP-адресу, щоб отримати результат у форматах 3, CSV, XML та JSON. .

Синтаксис просто подібний, і ви можете використовувати його прямо в будь-якому з веб-переглядачів, які ви використовуєте.

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

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

Наприклад, щоб отримати геолокацію нашого веб-сервера в XML у браузері, ви робите це:

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

Тепер давайте подивимося, як ми можемо це зробити на PowerShell.

Invoke-RestMethod це командлет PowerShell, що стосується HTTP / HTTPS-запитів, пов'язаних із веб-службами Representational State Transfer (REST), які повертають багато структуровані дані, такі як XML або JSON. Це чудовий кандидат для здійснення дзвінка та відображення результату у чудово відформатованому вигляді.

Таким чином, щоб отримати інформацію про геолокацію нашого веб-сервера в PowerShell, ви можете просто запустити наступний командлет у вікні PowerShell.

Invoke-RestMethod -Method Get -Uri http://freegeoip.net/xml/www.nextofwindows.com / | Виберіть -об'єкт-властивість InnerXML | Out-Gridview

Invoke-RestMethod -Method Отримати -URI http ___ freegeoip.net_xml_www.nextofwindows.co - 2015-04-23 14_06_26

Щоб скласти сценарій PowerShell, який перевіряє будь-яку задану IP-адресу та ім'я хоста, спробуйте виконати наступні коди.

#queries -Version 3 $ source = [string] $ args [0] $ infoService = "http://freegeoip.net/xml/$source" $ geoip = Invoke-RestMethod-Метод Get -URI $ infoService $ geoip.Response

Windows PowerShell ISE - 2015-04-23 14_11_04

Ви також можете завантажити той самий сценарій нижче, щоб зберегти деякі ваші часи. Завантажте його на свій локальний комп'ютер і запустіть його у вікні PowerShell з наступним використанням:

.ipgeo.ps1 {ip_or_hostname}

Іконка
Отримайте інформацію про геодані будь-якого IP-адреси чи ім'я хоста 0.18 KB
скачати

Альтернатива

Некудо Інший безкоштовний API геолокації IP, який ми можемо використати для архівування цього. Схема отримання HTTP-запитів щодо використання служби виглядає так:

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

Потім ви можете скористатися командлетом Invoke-RestMethod за допомогою пункту Select-Object для отримання інформації.

Invoke-RestMethod-Метод Get -Uri "http://geoip.nekudo.com/api/{ip}" | Select-Object-ExpandProperty Country -Property City, IP, Location

Тут живе публічна служба DNS Google:

powershell-ip-геолокація-з-некудо

Якщо ви хочете дізнатись про геолокацію назви вузла, вам потрібно буде вирішити проблему DNS і зберегти її в змінній спочатку.

$ IPAddress = [Net.Dns] :: GetHostByName ("доменне ім'я"). AddressList.IPAddressToString

Ось де живе сайт Microsoft:

powershell-ip-geolocation-with-nekudo-from-a-host ім'я

Крім того, оскільки набір даних, який ви отримали з API-інтерфейсу Nekudo, включає координати широти та довготи, ви можете дізнатись, де він фактично використовує Google Maps.

Щоб завершити це все, наступний код виявляє інформацію геолокації про ваш публічний IP і відкриває його на Картах Google.

$ ip = Invoke-RestMethod -Uri http://checkip.amazonaws.com/
$ geo = Invoke-RestMethod -Uri "http://geoip.nekudo.com/api/$ IP "$ latitude = $ geo.Location.Latitude $ довгота = $ geo.Location.Longitude $ url ="https://www.google.com/maps/preview/@$ широта, $ довгота, 12z "Start-Process -FilePath $ url

Інша альтернатива

IPInfo.io - це ще один веб-сервіс, за допомогою якого ви можете використовувати запит інформацію про IP. Наступна команда повертає детальну інформацію про геодані про вашу поточну IP-адресу.

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

Щоб запитати інформацію про конкретну IP-адресу, додайте / {ipaddress} в кінці. Наприклад, наступна команда показує географічну інформацію про Google Public DNS.

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

powershell-geolocation-with-ipinfo

джерело

залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.