Skip to content

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

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages