Module rawsocket_helper::send[][src]

Expand description

使用 pnet 通道发送数据

l2 用法

use rand::thread_rng;
use rawsocket_helper::{
    out_going::{
        get_all,
    },
    send::{create_l2_channel, send_tcp},
};
use std::net::Ipv4Addr;

let og = get_all().unwrap();
let (mut tx, _) = create_l2_channel(&og.iface).unwrap();
let mut rng = thread_rng();
send_tcp(
    &mut tx,
    0, // body 长度, 缺省填充为 0
    &og.src_mac,
    &og.dst_mac,
    &og.src_ip,
    &Ipv4Addr::new(8, 8, 8, 8),
    1234,
    53,
    &mut rng,
    |_x| false, // 修改生成的 TCP 报文, 如果修改 IP 头, 需同时修改校验和,
                // 如果修改 TCP 部分, 返回 true 会自动更新校验和, _x 是从 l2 开始的数据
).unwrap();

Functions

构造 L2 + L3 + L4 TCP 包

构造 L4 TCP 包

创建 pnet L2 通道

创建 pnet L4 通道

通过 pnet L2 通道构造并发送 tcp 报文