Init commit
This commit is contained in:
+28
@@ -0,0 +1,28 @@
|
||||
use std::env::args;
|
||||
use std::net::UdpSocket;
|
||||
|
||||
fn get_magic_pkt(mac: String) -> [u8; 102] {
|
||||
let mut mac_bytes = [0u8; 6];
|
||||
let mut magic_bytes = [0u8; 102];
|
||||
magic_bytes[..6].fill(0xFF);
|
||||
|
||||
for (i, part) in mac.split(':').enumerate() {
|
||||
mac_bytes[i] = u8::from_str_radix(part, 16).unwrap();
|
||||
}
|
||||
for i in 0..16 {
|
||||
let start = 6 + i * 6;
|
||||
magic_bytes[start..start + 6].copy_from_slice(&mac_bytes);
|
||||
}
|
||||
|
||||
magic_bytes
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mac = args().nth(1).expect("no mac given; Usage woly aa:bb:cc:dd:ee:ff");
|
||||
let magic_bytes = get_magic_pkt(mac);
|
||||
|
||||
let socket = UdpSocket::bind("0.0.0.0:0").expect("couldnt' bind socket");
|
||||
socket.set_broadcast(true).expect("couldn't set broadcast");
|
||||
socket.send_to(&magic_bytes, "255.255.255.255:9").expect("couldn't send data");
|
||||
println!("{:02X?}", magic_bytes);
|
||||
}
|
||||
Reference in New Issue
Block a user