Skip to content

Latest commit

 

History

History
124 lines (91 loc) · 3.22 KB

README.md

File metadata and controls

124 lines (91 loc) · 3.22 KB

Remly (Wake On Lan)

Small python library and CLI script which allows running computers remotely on LAN using WoL protocol.

Python version

Installation

pip install remly

Usage example

A few motivating and useful examples of how remly can be used.

CLI program

usage: remly [-h] {s,w} ...

Cli script allow turn on your computer remotely and check status

positional arguments:
  {s,w}       commands
    s         check device status (accept ipv4 and mac)
    w         wake up computer

optional arguments:
  -h, --help  show this help message and exit

Wake up device

remly w -m AA:AA:AA:AA:AA:AA
usage: remly w [-h] [--mac ETH_ADDR] [--port PORT] [--bcasts BCASTS [BCASTS ...]]

optional arguments:
  -h, --help            show this help message and exit
  --mac ETH_ADDR, -m ETH_ADDR
                        device physical address
  --port PORT, -p PORT  port for WoL protocol (default: 9)
  --bcasts BCASTS [BCASTS ...], -b BCASTS [BCASTS ...]
                        broadcast address (default: 192.168.0.255)

Check device status

remly s -m AA:AA:AA:AA:AA:AA
usage: remly s [-h] [--mac ETH_ADDR] [--ipv4 IP_ADDRESS] [--port PORT] [--timeout TIMEOUT]

optional arguments:
  -h, --help            show this help message and exit
  --mac ETH_ADDR, -m ETH_ADDR
                        device physical address
  --ipv4 IP_ADDRESS, -v4 IP_ADDRESS
                        device ipv4 address
  --port PORT, -p PORT  port for ICMP protocol (default: 7)
  --timeout TIMEOUT, -t TIMEOUT

library

from remly import wake_up, status

# wake up device
wake_up(eth_addr='AA:AA:AA:AA:AA:AA', port=555, broadcast=['192.168.16.255'])

# check device status
# takes either an ip or a mac address
status(ip_address='192.168.16.5')

# based on physical address
status(eth_addr='2b:56:ff:d3:3f:31', timeout=5, port=1)
from remly import wake_up

known_computers = {
    'dev1': '2b:56:ff:d3:3f:31',
    'dev2': '60:f4:4c:53:9a:7f'
}

for __, dev in known_computers.items():
    wake_up(eth_addr=dev, bcasts=['192.168.16.255'], port=9)

Release History

  • 2.0
    • code documentation.
    • upgrade mac verification function to support more physical addresses formats.
    • added future allows getting ip addres from mac (read_arptable).
    • added checking device status function.
  • 1.0
    • release working program.

Meta

Piotr Markiewicz – @LinkedIn[email protected]

Distributed under the MIT license. See LICENSE for more information.

https://github.com/sectasy0

Contributing

  1. Fork it (https://github.com/sectasy0/remly)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request