40 lines
1.2 KiB
Markdown
40 lines
1.2 KiB
Markdown
# Wakey
|
|
[](https://github.com/LesnyRumcajs/wakey/actions/workflows/rust.yml)
|
|
[](https://crates.io/crates/wakey)
|
|
[](https://docs.rs/wakey)
|
|
|
|
Library for managing Wake-on-LAN packets. It supports:
|
|
* creating magic packets,
|
|
* broadcasting them via UDP.
|
|
|
|
# Usage
|
|
|
|
From string representation of MAC address and using defaults when broadcasting:
|
|
```rust
|
|
let wol = wakey::WolPacket::from_string("01:02:03:04:05:06", ':');
|
|
if wol.send_magic().is_ok() {
|
|
println!("Sent the magic packet!");
|
|
} else {
|
|
println!("Failed to send the magic packet!");
|
|
}
|
|
```
|
|
|
|
Packets can also be constructed with raw bytes and sent from / to custom addresses:
|
|
```rust
|
|
use std::net::SocketAddr;
|
|
|
|
let wol = wakey::WolPacket::from_bytes(&[0x00, 0x01, 0x02, 0x03, 0x04, 0x05]);
|
|
let src = SocketAddr::from(([0,0,0,0], 0));
|
|
let dst = SocketAddr::from(([255,255,255,255], 9));
|
|
|
|
wol.send_magic_to(src, dst);
|
|
```
|
|
|
|
## Included binary
|
|
|
|
The binary `bin/wake` may be directly used in scripts:
|
|
|
|
```
|
|
wake -m 00:11:22:33:44:55
|
|
```
|