Вопрос или проблема
Мы хотели бы найти отправителей пакетов 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-пакетов.
Шаги:
- Установите Wireshark с официального сайта: Wireshark.
- Запустите Wireshark и выберите сетевой интерфейс, на котором будет вестись прослушивание.
- Используйте фильтр
udp.port == 9
в поле фильтрации для захвата только WoL-пакетов (обычно используются порты 9 или 7). - Запустите процесс захвата и наблюдайте за сетевым трафиком, чтобы определить, откуда приходят WoL-запросы.
2. Использование PowerShell
Хотя PowerShell не предоставляет прямых инструментов для прослушивания сетевых пакетов, можно использовать библиотеку Pcap.Net для этой цели. Вот пример, как это можно сделать:
Шаги:
- Установите Pcap.Net с помощью NuGet в вашем проекте PowerShell.
- Напишите 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", который вы упомянули в своем вопросе.
Шаги:
- Перейдите по ссылке на Wake-on-LAN Sniffer.
- Скачайте и установите программу.
- Запустите утилиту, чтобы начать прослушивание пакетов WoL и выявление их источников.
Заключение
Каждый из методов имеет свои преимущества и недостатки. Wireshark предоставляет мощные функции анализа, в то время как специально разработанные утилиты для WoL могут быть проще в использовании. Выбор подходящего метода будет зависеть от ваших потребностей и уровня комфорта с использованием различных инструментов. Используя данные методы, вы сможете обнаруживать отправителей запросов Wake-on-LAN и, соответственно, устранять проблемы с ненужным пробуждением компьютеров в вашей сети.