1个不稳定版本

0.1.0 2019年4月1日

#712压缩

MIT许可证

33KB
689

riptables

Build Status

riptables为Linux中的iptables应用程序提供绑定。(修改自rust-iptables

相对于rust-iptables,增加了调用输出的解析功能,并返回RIPTRule对象。

用法

[dependencies]
riptables = "0.1"

入门

use riptables::RIPTables;
use riptables::rule::Archive;

#[test]
fn test_list() {
  let table = "nat";
  let name = "TESTNAT";
  let iptables = riptables::new(false).unwrap();

  iptables.new_chain(table, name);
  iptables.insert(table, name, "-j ACCEPT", 1);
  let rules = iptables.list_chains(table, name).unwrap();
  iptables.delete(table, name, "-j ACCEPT");
  iptables.delete_chain(table, name);

  assert_eq!(rules.len(), 2);

  for rule in rules {
    println!("{:?}", rule);

    assert_eq!(rule.table, "nat".to_string());
    assert_eq!(rule.chain, name.to_string());
    match rule.archive {
      Archive::NewChain => assert_eq!(rule.origin, "-N TESTNAT".to_string()),
      Archive::Append => assert_eq!(rule.origin, "-A TESTNAT -j ACCEPT".to_string()),
      _ => {}
    }
  }
}

更多信息,请参阅tests文件夹中的测试文件。

依赖

~1.5MB
~37K SLoC