Skip to content

sectasy0/remly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 – @LinkedInsectasy0@gmail.coom

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published