Python: Разбудить компьютер по сети (Wake-on-LAN)
Назад  |  26.07.2026, 08:40:16  |  18
wol.py:

import socket, sys

# Разбудить устройство по сети
# Wake-on-LAN (WoL)
def sendMagicPacket(mac_address, ip_address='255.255.255.255', port=9):
    clean_mac = mac_address.replace(':', '').replace('-', '').replace('.', '').upper()
    if len(clean_mac) != 12:
        raise ValueError('Некорректный MAC-адрес')
    mac_bytes = bytes.fromhex(clean_mac)
    magic_packet = b'\xFF' * 6 + bytes.fromhex(clean_mac) * 16
    with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock:
        sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
        sock.sendto(magic_packet, (ip_address, int(port)))

if __name__ == '__main__':
    mac_address = sys.argv[1] if len(sys.argv) > 1 else ''
    ip_address = sys.argv[2] if len(sys.argv) > 2 else '255.255.255.255'
    port = int(sys.argv[3]) if len(sys.argv) > 3 else 9
    if not mac_address:
        print('Ошибка: не указан MAC-адрес.')
        print(f'Пример: py {sys.argv[0]} 00:1A:2B:3C:4D:5E')
        print(f'Или:    py {sys.argv[0]} 00:1A:2B:3C:4D:5E 192.168.0.255 7')
        sys.exit(1)
    sendMagicPacket(mac_address, ip_address, port)
    print('Magic Packet успешно отправлен!')
    print()
    print(f'MAC : {mac_address}')
    print(f'IP  : {ip_address}')
    print(f'PORT: {port}')

wol2.py:

# Разбудить устройство по сети
# Wake-on-LAN (WoL)
# pip install wakeonlan

from wakeonlan import send_magic_packet
import sys, warnings

warnings.filterwarnings('ignore', category=DeprecationWarning)

if __name__ == '__main__':
    mac_address = sys.argv[1] if len(sys.argv) > 1 else ''
    ip_address = sys.argv[2] if len(sys.argv) > 2 else '255.255.255.255'
    port = sys.argv[3] if len(sys.argv) > 3 else 7
    if not mac_address:
        print('Ошибка: не указан MAC-адрес.')
        print(f'Пример: py {sys.argv[0]} 00:1A:2B:3C:4D:5E')
        print(f'Или:    py {sys.argv[0]} 00:1A:2B:3C:4D:5E 192.168.0.255 7')
        sys.exit(1)
    send_magic_packet(mac_address, ip_address=ip_address, port=port)
    print('Magic Packet успешно отправлен!')
    print()
    print(f'MAC : {mac_address}')
    print(f'IP  : {ip_address}')
    print(f'PORT: {port}')
Поделится:
*текст* - жирный, ~текст~ - курсивный, -текст- - зачеркнутый, _текст_ - подчеркнутый
IP-адрес: 216.73.217.134
Часовой пояс: Asia/Almaty
Подробнее

Сервисы

Страницы

Информация

Сейчас онлайн
Всего на сайте: 2
Пользователи: 0
Гости: 1
Люди: 1
Роботы: 1