PowerShell. Получаем внешний IP-адрес - Компьютерная помощь

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

18.08.2017 Категория: Записки сисадмина Просмотров: 146 Комментариев: 4

 Скрипт для получения своего внешнего IP-адреса (самый простой способ).

$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 каким-то образом связана с получением IP-адреса сайта (не совсем мне понятно её назначение, но она нужна).
 
While (1 -ne 0) задаёт цикл. Интерпретировать можно так: "Пока 1 не станет 0, то выполнять {то что идёт дальше}", а единица у нас ни когда не станет нолем.
 
Далее идёт цикл, который будет выполняться бесконечно исходя из вышеприведённого условия.
 
Переменная $text2 - в ней задаём любой текст, если нужен. В моём случае, я задал текст в виде IP адреса как эталон, чтобы мне было легче понимать, переключился ли канал связи на резервный у которого другой IP-адрес или же я подключен к основному каналу связи (ниже я покажу скриншот, что в итоге у меня).
 
$timestamp - в эту переменную будет помещаться текущая дата и время. Помещена в цикл, дабы у нас отображалось текущее время. Если вынести данную переменную за цикл, то время не будет обновляться, и будет отображаться постоянно то время, которое было при запуске скрипта.
 
Далее все переменные помещаем в одну строчку.
Тут стоит отметить несколько моментов:
1. Ссылка в скобках указывает на страницу, на которой будет выводится наш внешний IP-адрес в виде строки.
2. При выводе нашего IP-адреса, в конце строки мы получали перенос строки, что очень портило вид при добавлении переменной $text2. Параметр Trim() удаляет этот перенос, что приводит к очень красивому виду в итоге.
 
Start-Sleep -s 15 - задаем в секундах паузу перед очередным выполнением цикла. Желательно не указывать меньшее количество секунд, т.к. рискуем быть заблокированными на сайте.
 
Итог получаем такой:
 

Дата, время, полученный IP-адрес, Sample - указывает на то, какой у нас должен быть IP.

Sample, при вашем желании, может быть убран, но в случае, если, к примеру, в организации подключено несколько провайдеров и необходимо отслеживать, у какого именно провайдера мы "тянем" интернет, то это очень удобно.
Комментариев: 4
avatar
1
Добрый день!
Смысл этого скрипта, для обычного пользователя нафиг не нужен (заходим 2ip.ru / speedtest.net), а админу и так ясно, с какого оборудования по какому провайдеру идет интернет.
avatar
0
2
Вопрос не в том, на каком оборудование какой IP, вопрос том, чтобы отследить на каком канале в данный момент времени ты находишься.
Например у нас это критично, ибо приходится некоторые параметры править ручками, ну и плюс ко всему оперативность решения многих проблем.
avatar
3
Александр, вот скажите мне, что за критический момент такой, Я правильно понимаю что у вас настроена балансировка канала, либо вы гоните определенный трафик через одного прова. Какое оборудование используете? ))
avatar
0
4
Оборудование DFL-860E.
Всё очень элементарно, если один провайдер отвалился, автоматически переключаемся на другого. Бывает так, что основной провайдер сбоит и происходит периодическое переключение на основной, с основного несколько раз. Приходится метрикой устанавливать второго провайдера как основного.
Но бывает так, что это переключение не заметно происходит, в связи с чем возникают рабочие проблемы и не сразу ясно по какой причине они вообще возникли. Вот этот скриптик и выручает, ибо оперативно эти проблемы и устраняются (к сожалению я не могу описывать всю инфраструктуру организации.)
avatar
Последние фото
Мы в контакте