Metadata-Version: 2.1
Name: ping-before-wakeonlan
Version: 1.0.0
Summary: Meet this Python Wake-on-LAN (WOL) Tool! It smartly checks your device status with integrated ping before sending the magic packet, ensuring efficiency. Set max wake devices, prevent power surges.
Home-page: https://github.com/changyy/ping-before-wakeonlan
Download-URL: https://pypi.org/project/ping-before-wakeonlan/
Author: Yuan-Yi Chang
Author-email: <changyy.csie@gmail.com>
Keywords: python,ping,wol
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: MacOS :: MacOS X
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE

# ping-before-wakeonlan

Meet this Python Wake-on-LAN (WOL) Tool! It smartly checks your device status with integrated ping before sending the magic packet, ensuring efficiency. Set max wake devices, prevent power surges.

# Installation

```
% pip install ping-before-wakeonlan
```

# Usage

```
% cat /tmp/device.json
[
   {
       "ip": "192.168.1.3",
       "mac_address": "00:00:00:00:00:03"
   },
   {
       "ip": "192.168.1.2",
       "mac_address": ""00:00:00:00:00:02
   },
   {
       "ip": "192.168.1.1",
       "mac_address": "00:00:00:00:00:01"
   },
   {
       "ip": "192.168.1.4",
       "mac_address": "00:00:00:00:00:04"
   },
   {
       "ip": "192.168.1.5",
       "mac_address": "00:00:00:00:00:05"
   },
   {
       "ip": "192.168.1.6",
       "mac_address": "00:00:00:00:00:06"
   },
   {
       "ip": "192.168.1.7",
       "mac_address": "00:00:00:00:00:07"
   }
]

% ping-before-wakeonlan --device-info /tmp/device.json
Process: 1 / 7: Device: {'ip': '192.168.1.3', 'mac_address': '00:00:00:00:00:03'}
Process: 2 / 7: Device: {'ip': '192.168.1.2', 'mac_address': '00:00:00:00:00:02'}
Process: 3 / 7: Device: {'ip': '192.168.1.1', 'mac_address': '00:00:00:00:00:01'}
Process: 4 / 7: Device: {'ip': '192.168.1.4', 'mac_address': '00:00:00:00:00:04'}
Process: 5 / 7: Device: {'ip': '192.168.1.5', 'mac_address': '00:00:00:00:00:05'}
{
    "count": 5,
    "device": {
        "failed": [],
        "handled": [
            {
                "ip": "192.168.1.3",
                "mac_address": "00:00:00:00:00:03"
            },
            {
                "ip": "192.168.1.2",
                "mac_address": "00:00:00:00:00:02"
            },
            {
                "ip": "192.168.1.1",
                "mac_address": "00:00:00:00:00:01"
            },
            {
                "ip": "192.168.1.4",
                "mac_address": "00:00:00:00:00:04"
            },
            {
                "ip": "192.168.1.5",
                "mac_address": "00:00:00:00:00:05"
            }
        ],
        "input": [
            {
                "ip": "192.168.1.3",
                "mac_address": "00:00:00:00:00:03"
            },
            {
                "ip": "192.168.1.2",
                "mac_address": ""00:00:00:00:00:02
            },
            {
                "ip": "192.168.1.1",
                "mac_address": "00:00:00:00:00:01"
            },
            {
                "ip": "192.168.1.4",
                "mac_address": "00:00:00:00:00:04"
            },
            {
                "ip": "192.168.1.5",
                "mac_address": "00:00:00:00:00:05"
            },
            {
                "ip": "192.168.1.6",
                "mac_address": "00:00:00:00:00:06"
            },
            {
                "ip": "192.168.1.7",
                "mac_address": "00:00:00:00:00:07"
            }
        ],
        "online": [],
        "skip": [
            {
                "ip": "192.168.1.6",
                "mac_address": "00:00:00:00:00:06"
            },
            {
                "ip": "192.168.1.7",
                "mac_address": "00:00:00:00:00:07"
            }
        ]
    },
    "info": [
        "cmd: ['ping', '-c', '1', '-W', '3', '192.168.1.1'], item: {'ip': '192.168.1.1', 'mac_address': '00:00:00:00:00:01'}",
        "processOutput: b'PING 192.168.1.1 (192.168.1.1): 56 data bytes\\n\\n--- 192.168.1.1 ping statistics ---\\n1 packets transmitted, 0 packets received, 100.0% packet loss\\n', processError: None"
    ],
    "maxCount": 5,
    "ping": "ping -c 1 -W 3",
    "status": true,
    "version": "1.0.0"
}

```
