Skip to content

A library uses SIOCETHTOOL ioctl command to get ethernet information

License

Notifications You must be signed in to change notification settings

ssfdust/ethernet-info-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ethernet Info

crates.io docs.rs ci coverage

The crate provides a way to get the link information of the interface, including the port type, supported modes. The crate is based on the ioctl command, so it can only be used on Linux.

Examples

List all the interfaces' ethtool related information.

use ethernet_info::get_ethernet_info;
let interfaces_eth_info = get_ethernet_info(None);
for interface_info in interfaces_eth_info {
    println!("interface: {}", interface_info.name());
    println!("Port: {}", interface_info.port());
    println!("Supported Ports: {:?}", interface_info.ports());
    println!("Supported: {:?}", interface_info.supported());
}

Get the ethtool related information of the specified interface.

use ethernet_info::get_ethernet_info;
let interfaces_eth_info = get_ethernet_info(Some("enp1s0"));
for interface_info in interfaces_eth_info {
    println!("interface: {}", interface_info.name());
    println!("Port: {}", interface_info.port());
    println!("Supported Ports: {:?}", interface_info.ports());
    println!("Supported: {:?}", interface_info.supported());
}

Get the ethtool related of the specified interface by EthernetInfo.

use ethernet_info::EthernetInfo;
if let Ok(interface_info) = EthernetInfo::try_from("enp1s0") {
    println!("interface: {}", interface_info.name());
    println!("Port: {}", interface_info.port());
    println!("Supported Ports: {:?}", interface_info.ports());
    println!("Supported: {:?}", interface_info.supported());
}

Test

This crate depends on hardware, some tests may not be passed on every machine. Please change the test option on your own.

About

A library uses SIOCETHTOOL ioctl command to get ethernet information

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages