Привет, ребята! Сегодня мы погрузимся в захватывающий мир PowerShell и рассмотрим несколько изящных методов получения вашего общедоступного IP-адреса. Итак, берите свой любимый напиток, садитесь поудобнее и начнем!
-
Invoke-WebRequest:
Один из самых простых способов получить общедоступный IP-адрес — использовать командлетInvoke-WebRequest. Вот простой пример:$ipAddress = (Invoke-WebRequest -Uri 'https://icanhazip.com').Content.Trim()Этот метод отправляет запрос на веб-сайт «icanhazip.com» и извлекает IP-адрес из ответа.
-
Get-Content:
Другой подход — использовать командлетGet-Contentдля чтения HTML-содержимого веб-сайта и извлечения IP-адреса. Вот пример использования «icanhazip.com»:$ipAddress = (Get-Content -Uri 'https://icanhazip.com').Trim()Этот метод получает IP-адрес непосредственно из ответа HTML.
-
cURL:
Если в вашей системе установлен cURL, вы также можете использовать его для получения своего общедоступного IP-адреса. Вот как это можно сделать:$ipAddress = (curl -s 'https://icanhazip.com').Trim()Флаг
-sобеспечивает автоматическое выполнение, а IP-адрес извлекается из ответа. -
Однострочник PowerShell:
Для быстрого и краткого подхода вы можете использовать однострочник PowerShell, чтобы получить свой IP-адрес:$ipAddress = (iwr 'https://icanhazip.com').Content.Trim()Этот метод аналогичен первому подходу, но имеет более короткий синтаксис.
-
WebClient:
КлассWebClientпредлагает другой способ получения вашего IP-адреса. Вот пример:$webClient = New-Object System.Net.WebClient $ipAddress = $webClient.DownloadString('https://icanhazip.com').Trim()Этот метод создает новый объект
WebClientи использует его для загрузки IP-адреса с веб-сайта. -
System.Net.Http.HttpClient:
Если вы работаете с более новыми версиями PowerShell, вы можете использовать классSystem.Net.Http.HttpClient. Вот пример:$httpClient = New-Object System.Net.Http.HttpClient $response = $httpClient.GetAsync('https://icanhazip.com').Result $ipAddress = $response.Content.ReadAsStringAsync().Result.Trim()Этот метод использует класс
HttpClientдля отправки асинхронного запроса GET и получения IP-адреса из ответа. -
System.Net.Sockets.TcpClient:
Для другого подхода вы можете использовать классSystem.Net.Sockets.TcpClient, чтобы установить соединение и получить свой IP-адрес. Вот пример:$tcpClient = New-Object System.Net.Sockets.TcpClient('icanhazip.com', 80) $ipAddress = $tcpClient.Client.LocalEndPoint.Address.ToString() $tcpClient.Close()Этот метод устанавливает TCP-соединение с «icanhazip.com» через порт 80 и получает локальный IP-адрес.
-
REST API.
Некоторые веб-сайты предоставляют специальную конечную точку REST API для получения вашего IP-адреса. Вот пример использования ipify.org:$ipAddress = (Invoke-WebRequest -Uri 'https://api.ipify.org').Content.Trim()Этот метод отправляет запрос к API ipify.org и извлекает IP-адрес из ответа.
-
Разрешение DNS.
Вы также можете разрешить имя хоста известной службы, например «icanhazip.com», чтобы получить свой IP-адрес. Вот пример:$ipAddress = [System.Net.Dns]::GetHostAddresses('icanhazip.com')[0].ToString()Этот метод использует метод
GetHostAddressesиз классаSystem.Net.Dnsдля определения IP-адреса. -
Встроенная команда Windows:
Если вы предпочитаете использовать встроенные команды Windows, вы можете использоватьnslookupдля получения вашего IP-адреса. Вот пример:$ipAddress = (nslookup myip.opendns.com resolver1.opendns.com | Select-String 'Address: (\d+\.){3}\d+').Matches.Value -replace 'Address: 'Этот метод использует
nslookupдля запроса «myip.opendns.com» через преобразователь «resolver1.opendns.com» и извлекает IP-адрес из ответа.
Вот и все! Десять различных методов получения вашего общедоступного IP-адреса в PowerShell. Не стесняйтесь экспериментировать с ними и выбирайте тот, который соответствует вашим потребностям. Удачных сценариев!