Получить свой внешний IP-адрес в PowerShell

Материал из Wikipedia PC-SUPP
Версия от 15:16, 22 июня 2018; Alexandre (обсуждение | вклад) (Новая страница: «{{Head-posh}} == Общее == Начнём данную инструкция с приведения примера самого скрипта. $text1 = ' |…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Scr posh.png PowerShell. Получить свой внешний IP-адрес в PowerShell

Общее

Начнём данную инструкция с приведения примера самого скрипта.

$text1 = ' | IP = '
$webClient = New-Object -TypeName System.Net.WebClient
While (1 -ne 0) 
{
$text2 = ' дополнительная информация которую можно не указывать, но здесь она нужна для примера'
$timestamp = Get-Date -Format('yyyy-MM-dd HH:mm:ss')
$timestamp + $text1 + $webClient.DownloadString('http://myexternalip.com/raw').Trim() + $text2
Start-Sleep -s 15 
}

Разбор

Теперь разберём всё в подробностях.

Первая переменная $text1 в которой задаём текст для более красивого отображения нашего IP при выводе на экран

Следующая переменная $webClient - в данном случае даёт команду powershell, подключиться к указанному сайту и получить с него необходимые нам данные

While (1 -ne 0) задаёт цикл. Интерпретировать можно так: "Пока 1 не станет 0, то выполнять {то что идёт дальше}", а единица, в нашем случае, ни когда не станет нолем.

Далее идёт цикл, который будет выполняться бесконечно исходя из вышеприведённого условия.

Переменная $text2 - в ней задаём любой текст, если нужен. В моём случае, я задал текст в виде IP адреса как эталон, чтобы мне было легче понимать, переключился ли канал связи на резервный, у которого соответственно другой IP-адрес, или же я подключен к основному каналу связи.

$timestamp - в эту переменную будет помещаться текущая дата и время. Помещена в цикл, дабы у нас отображалось текущее время. Если вынести данную переменную за цикл, то время не будет обновляться, и будет отображаться постоянно то время, которое было при запуске скрипта.

Далее все переменные помещаем в одну строчку. Тут стоит отметить несколько моментов:

  1. Ссылка в скобках указывает на страницу, на которой будет выводится наш внешний IP-адрес в виде строки.
  2. При выводе нашего IP-адреса, в конце строки мы получали перенос строки, что очень портило вид при добавлении переменной $text2. Параметр Trim() удаляет этот перенос, что приводит к очень красивому виду в итоге.

Start-Sleep -s 15 - задаем в секундах паузу перед очередным выполнением цикла. Желательно не указывать меньшее количество секунд, т.к. рискуем быть заблокированными на сайте.

Итог получаем такой:

Scr-getExtIP.png