Initial commit
commit
84bf8c04cd
|
@ -0,0 +1,2 @@
|
||||||
|
/target
|
||||||
|
**/*.rs.bk
|
|
@ -0,0 +1,4 @@
|
||||||
|
[[package]]
|
||||||
|
name = "wakeonlan"
|
||||||
|
version = "0.1.0"
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
[package]
|
||||||
|
name = "wakeonlan"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Dustin C. Hatch <dustin@hatch.name>"]
|
||||||
|
|
||||||
|
[dependencies]
|
|
@ -0,0 +1,59 @@
|
||||||
|
use std::io;
|
||||||
|
use std::net;
|
||||||
|
|
||||||
|
|
||||||
|
pub struct MagicPacket {
|
||||||
|
addr: [u8; 6],
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
impl MagicPacket {
|
||||||
|
pub fn new(addr: [u8; 6]) -> Self {
|
||||||
|
MagicPacket { addr }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn send(&self) -> io::Result<usize> {
|
||||||
|
let socket = net::UdpSocket::bind("0.0.0.0:0")?;
|
||||||
|
socket.set_broadcast(true)?;
|
||||||
|
socket.connect("255.255.255.255:9")?;
|
||||||
|
socket.send(&self.to_buf())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn to_buf(&self) -> [u8; 102] {
|
||||||
|
[
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
self.addr[0], self.addr[1], self.addr[2],
|
||||||
|
self.addr[3], self.addr[4], self.addr[5],
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
mod magic;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let packet = magic::MagicPacket::new([0x0c, 0x9d, 0x92, 0x0e, 0x3a, 0x41]);
|
||||||
|
packet.send().unwrap();
|
||||||
|
}
|
Loading…
Reference in New Issue