Понадобилось мне как-то проверить, работает ли UDP порт на компьютере. На получателе настраиваю прослушивание UDP порта с помощью PktMon:
PktMon — ловим UDP трафик в Windows 10
Слушаю, слушаю. Нет трафика. Нужно самому послать UDP пакет, а под рукой нет никаких подручных средств. На помощь приходит Powershell.
Send-UdpDatagram.ps1
function Send-UdpDatagram
{
Param ([string] $EndPoint,
[int] $Port,
[string] $Message)
$IP = [System.Net.Dns]::GetHostAddresses($EndPoint)
$Address = [System.Net.IPAddress]::Parse($IP)
$EndPoints = New-Object System.Net.IPEndPoint($Address, $Port)
$Socket = New-Object System.Net.Sockets.UDPClient
$EncodedText = [Text.Encoding]::ASCII.GetBytes($Message)
$SendMessage = $Socket.Send($EncodedText, $EncodedText.Length, $EndPoints)
$Socket.Close()
}
Usage.ps1
Send-UdpDatagram -EndPoint "127.0.0.1" -Port 53 -Message "Hello world"
Скрипт писал не сам, но проверил. Работает.
Примечание
Пришлось ещё разрешить выполнение PowerShell скриптов.
Powershell — невозможно загрузить файл ps1, так как выполнение сценариев отключено в этой системе