Прослушивание запросов Wake-on-LAN на платформе Windows

Вопрос или проблема

Мы хотели бы найти отправителей пакетов Wake-on-LAN в нашей сети с наших компьютеров на Windows (в основном Windows 10).

Решение, описанное Chaos, применяется только к Linux.

Существует ли также аналогичное простое решение для Windows через командную строку, PowerShell или с помощью бесплатного стороннего инструмента?

Предыстория:
Наши машины пробуждаются ежедневно без причины, и мы пытаемся найти и устранить отправителя.

Решение, описанное Chaos в этом вопросе, применяется только к Linux.

Это не правда, поищите “netcat для Windows”.

Существует множество сетевых снифферов, которые также могут выполнить эту задачу. Например, Wireshark.

Я только что нашел (сниффер пакетов Wake-on-LAN) Попробуйте это https://apreltech.com/Blog/Wake_on_lan_Sniffer

Ответ или решение

Чтобы прослушивать запросы Wake-on-LAN (WoL) на платформах Windows, таких как Windows 10, вы можете использовать несколько различных методов, включая инструменты командной строки, PowerShell и сторонние программы. Вот ряд подходов, которые могут помочь вам в решении вашей задачи:

1. Прослушивание пакетов с помощью Wireshark

Wireshark — это мощный сетевой анализатор, который может захватывать и анализировать сетевой трафик. Вы можете настроить его для фильтрации только WoL-пакетов.

Шаги:

  1. Установите Wireshark с официального сайта: Wireshark.
  2. Запустите Wireshark и выберите сетевой интерфейс, на котором будет вестись прослушивание.
  3. Используйте фильтр udp.port == 9 в поле фильтрации для захвата только WoL-пакетов (обычно используются порты 9 или 7).
  4. Запустите процесс захвата и наблюдайте за сетевым трафиком, чтобы определить, откуда приходят WoL-запросы.

2. Использование PowerShell

Хотя PowerShell не предоставляет прямых инструментов для прослушивания сетевых пакетов, можно использовать библиотеку Pcap.Net для этой цели. Вот пример, как это можно сделать:

Шаги:

  1. Установите Pcap.Net с помощью NuGet в вашем проекте PowerShell.
  2. Напишите PowerShell-скрипт для захвата пакетов.

Примерный код может выглядеть так (нужно будет настроить проект и добавить соответствующие библиотеки):

# Это всего лишь пример, и требует дальнейшего изучения и настройки

Add-Type -AssemblyName PcapDotNet
$device = [PcapDotNet.Packets.PacketDevice]::AllLocalMachine[0] # Замените на нужный интерфейс
$device.Open([PcapDotNet.Packets.PacketDeviceOpenAttributes]::Promiscuous, 1000, [PcapDotNet.Packets.PacketDeviceOpenReadTimeout]::Infinite)
$device.ReceivePackets(0, { param($packet) if ($packet.Ethernet.Ip.Udp.DestinationPort -eq 9) { Write-Host "WoL Packet Detected" } })

3. Использование специализированных утилит

Вы также можете использовать специализированные утилиты, такие как "Wake-on-LAN Sniffer", который вы упомянули в своем вопросе.

Шаги:

  1. Перейдите по ссылке на Wake-on-LAN Sniffer.
  2. Скачайте и установите программу.
  3. Запустите утилиту, чтобы начать прослушивание пакетов WoL и выявление их источников.

Заключение

Каждый из методов имеет свои преимущества и недостатки. Wireshark предоставляет мощные функции анализа, в то время как специально разработанные утилиты для WoL могут быть проще в использовании. Выбор подходящего метода будет зависеть от ваших потребностей и уровня комфорта с использованием различных инструментов. Используя данные методы, вы сможете обнаруживать отправителей запросов Wake-on-LAN и, соответственно, устранять проблемы с ненужным пробуждением компьютеров в вашей сети.

Оцените материал
Добавить комментарий

Капча загружается...