Struct etherparse::PacketBuilder
source · pub struct PacketBuilder {}
Expand description
Helper for building packets.
The packet builder allows the easy construction of a packet from the ethernet II layer downwards including ipv6, ipv4, the udp header and the actual payload. The packet builder automatically calculates lengths & checksums for ip & udp and set type identifiers for ethernetII and ip. This makes it easy and less error prone to construct custom packets.
Example
let builder = PacketBuilder::
ethernet2([1,2,3,4,5,6], //source mac
[7,8,9,10,11,12]) //destionation mac
.ipv4([192,168,1,1], //source ip
[192,168,1,2], //desitionation ip
20) //time to life
.udp(21, //source port
1234); //desitnation port
//payload of the udp packet
let payload = [1,2,3,4,5,6,7,8];
//get some memory to store the result
let mut result = Vec::<u8>::with_capacity(
builder.size(payload.len()));
//serialize
builder.write(&mut result, &payload).unwrap();
println!("{:?}", result);
Implementations§
source§impl PacketBuilder
impl PacketBuilder
sourcepub fn ethernet2(
source: [u8; 6],
destination: [u8; 6]
) -> PacketBuilderStep<Ethernet2Header>
pub fn ethernet2(
source: [u8; 6],
destination: [u8; 6]
) -> PacketBuilderStep<Ethernet2Header>
Start an packet with an ethernetII header.