Skip to content

chronicl/pack2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

packet sniffing for windows

API

This crate provides one function recv_all_socket which creates a socket2::Socket that receives all incoming and outgoing ipv4 packets.

Example

use pack2::recv_all_socket;
use std::mem::MaybeUninit;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let socket = recv_all_socket()?;

    let mut buf = vec![0u8; 65535];
    loop {
        // This is safe as described in the documentation of socket2::Socket::recv_from
        let buf_maybe = unsafe { &mut *(&mut buf[..] as *mut [u8] as *mut [MaybeUninit<u8>]) };
        let (read, addr) = socket.recv_from(buf_maybe)?;
        println!("received {} bytes from {:?}", read, addr);
    }
}

About

windows ipv4 packet sniffing for rust

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages