Small python library and CLI script which allows running computers remotely on LAN using WoL protocol.
pip install remlyA few motivating and useful examples of how remly can be used.
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 exitWake up device
remly w -m AA:AA:AA:AA:AA:AAusage: 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 TIMEOUTfrom 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)- 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.
Piotr Markiewicz – @LinkedIn – sectasy0@gmail.coom
Distributed under the MIT license. See LICENSE for more information.
https://github.com/sectasy0
- Fork it (https://github.com/sectasy0/remly)
- Create your feature branch (
git checkout -b feature/fooBar) - Commit your changes (
git commit -am 'Add some fooBar') - Push to the branch (
git push origin feature/fooBar) - Create a new Pull Request