10 个版本 (破坏性更新)
使用旧的 Rust 2015
0.8.2 | 2017 年 2 月 1 日 |
---|---|
0.7.0 | 2017 年 1 月 5 日 |
0.4.0 | 2016 年 12 月 25 日 |
#19 in #identification
71 次每月下载
在 peel-ip 中使用
15KB
234 行
path
IP 基于的连接识别和追踪
此 crate 受 netfilter 项目的极大启发,该项目为基于 TCP/IP 的协议提供连接跟踪。连接的超时(默认为 10 分钟)完全由使用 time crate 来处理。
示例用法
use path::{Path, Identifier};
use std::net::{IpAddr, Ipv4Addr};
// Create a new `Path` for tracking `u8` values as custom data
let mut path :Path<u8, u8> = Path::new();
// Build up a new identifier from IP Addresses, their ports, and a key (in this case the IP Protocol)
let identifier = Identifier::new(IpAddr::V4(Ipv4Addr::new(10, 0, 0, 1)), 1234,
IpAddr::V4(Ipv4Addr::new(10, 0, 0, 2)), 443,
6);
// Do the actual work
let connection = path.track(identifier).unwrap();
// Now it is possible to set/get the custom data
assert_eq!(connection.data.custom, None);
assert_eq!(connection.data.packet_counter, 1);
依赖项
~3.5–5MB
~98K SLoC