项目作者: marirs

项目描述 :
Get details of network interfaces
高级语言: Rust
项目地址: git://github.com/marirs/ifcfg-rs.git
创建时间: 2021-03-12T02:08:08Z
项目社区:https://github.com/marirs/ifcfg-rs

开源协议:MIT License

下载


IFCFG

Crates.io
Documentation
Build Status

IFCFG (ifconfig) is a Rust library to get network interfaces information for
Windows/Linux/Mac

Requirements

  • Rust

Include in project

  1. [dependencies]
  2. ifcfg = "0.1.2"

Example

  1. use ifcfg;
  2. fn main() -> ifcfg::Result<()> {
  3. let ifaces = ifcfg::IfCfg::get().expect("could not get interfaces");
  4. println!("{:#?}", &ifaces);
  5. Ok(())
  6. }

Compile

  1. cargo b

Tests

  1. cargo t

Run the included example

  1. cargo run --example interfaces
  2. Compiling ifcfg v0.1.0 (/root/ifcfg)
  3. Finished dev [optimized + debuginfo] target(s) in 0.63s
  4. Running `target/debug/examples/interfaces`
  5. [
  6. IfCfg {
  7. name: "lo",
  8. mac: "00:00:00:00:00:00",
  9. addresses: [
  10. InterfaceAddress {
  11. address_family: IPv6,
  12. address: Some(
  13. [::1]:0,
  14. ),
  15. mask: Some(
  16. [ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]:0,
  17. ),
  18. hop: None,
  19. },
  20. InterfaceAddress {
  21. address_family: IPv4,
  22. address: Some(
  23. 127.0.0.1:0,
  24. ),
  25. mask: Some(
  26. 255.0.0.0:0,
  27. ),
  28. hop: Some(
  29. Destination(
  30. 127.0.0.1:0,
  31. ),
  32. ),
  33. },
  34. InterfaceAddress {
  35. address_family: Packet,
  36. address: None,
  37. mask: None,
  38. hop: None,
  39. },
  40. ],
  41. description: "",
  42. },
  43. IfCfg {
  44. name: "ens33",
  45. mac: "00:0c:29:0a:e0:b4",
  46. addresses: [
  47. InterfaceAddress {
  48. address_family: IPv6,
  49. address: Some(
  50. [fe80::20c:29ff:fe0a:e0b4%2]:0,
  51. ),
  52. mask: Some(
  53. [ffff:ffff:ffff:ffff::]:0,
  54. ),
  55. hop: None,
  56. },
  57. InterfaceAddress {
  58. address_family: IPv6,
  59. address: Some(
  60. [fd15:4ba5:5a2b:1008:20c:29ff:fe0a:e0b4]:0,
  61. ),
  62. mask: Some(
  63. [ffff:ffff:ffff:ffff::]:0,
  64. ),
  65. hop: None,
  66. },
  67. InterfaceAddress {
  68. address_family: IPv4,
  69. address: Some(
  70. 192.168.2.3:0,
  71. ),
  72. mask: Some(
  73. 255.255.255.0:0,
  74. ),
  75. hop: Some(
  76. Broadcast(
  77. 192.168.2.255:0,
  78. ),
  79. ),
  80. },
  81. InterfaceAddress {
  82. address_family: Packet,
  83. address: None,
  84. mask: None,
  85. hop: None,
  86. },
  87. ],
  88. description: "",
  89. },
  90. ]

License: MIT/Apache