pub struct Interface {Show 16 fields
pub index: u32,
pub name: String,
pub friendly_name: Option<String>,
pub description: Option<String>,
pub if_type: InterfaceType,
pub mac_addr: Option<MacAddr>,
pub ipv4: Vec<Ipv4Net>,
pub ipv6: Vec<Ipv6Net>,
pub ipv6_scope_ids: Vec<u32>,
pub flags: u32,
pub transmit_speed: Option<u64>,
pub receive_speed: Option<u64>,
pub gateway: Option<NetworkDevice>,
pub dns_servers: Vec<IpAddr>,
pub mtu: Option<u32>,
pub default: bool,
}
Expand description
Structure of Network Interface information
Fields§
§index: u32
Index of network interface. This is an integer which uniquely identifies the interface on this machine.
name: String
Machine-readable name of the network interface. On unix-like OSs, this is the interface name, like ‘eth0’ or ‘eno1’. On Windows, this is the interface’s GUID as a string.
friendly_name: Option<String>
Friendly name of network interface. On Windows, this is the network adapter configured name, e.g. “Ethernet 5” or “Wi-Fi”. On Mac, this is the interface display name, such as “Ethernet” or “FireWire”. If no friendly name is available, this is left as None.
description: Option<String>
Description of the network interface. On Windows, this is the network adapter model, such as “Realtek USB GbE Family Controller #4” or “Software Loopback Interface 1”. Currently this is not available on platforms other than Windows.
if_type: InterfaceType
Interface Type
mac_addr: Option<MacAddr>
MAC address of network interface
ipv4: Vec<Ipv4Net>
List of Ipv4Nets (IPv4 address + netmask) for the network interface
ipv6: Vec<Ipv6Net>
List of Ipv6Nets (IPv6 address + netmask) for the network interface
ipv6_scope_ids: Vec<u32>
List of IPv6 Scope IDs for each of the corresponding elements in the ipv6 address vector. The Scope ID is an integer which uniquely identifies this interface address on the system, and must be provided when using link-local addressing to specify which interface you wish to use. The scope ID can be the same as the interface index, but is not required to be by the standard. The scope ID can also be referred to as the zone index.
flags: u32
Flags for the network interface (OS Specific)
transmit_speed: Option<u64>
Speed in bits per second of the transmit for the network interface, if known. Currently only supported on Linux, Android, and Windows.
receive_speed: Option<u64>
Speed in bits per second of the receive for the network interface. Currently only supported on Linux, Android, and Windows.
gateway: Option<NetworkDevice>
Default gateway for the network interface. This is the address of the router to which IP packets are forwarded when they need to be sent to a device outside of the local network.
dns_servers: Vec<IpAddr>
DNS server addresses for the network interface
mtu: Option<u32>
Maximum Transmission Unit (MTU) for the network interface
default: bool
Whether this is the default interface for accessing the Internet.
Implementations§
Source§impl Interface
impl Interface
pub fn dummy() -> Interface
Sourcepub fn is_loopback(&self) -> bool
pub fn is_loopback(&self) -> bool
Check if the network interface is a Loopback interface
Sourcepub fn is_point_to_point(&self) -> bool
pub fn is_point_to_point(&self) -> bool
Check if the network interface is a Point-to-Point interface
Sourcepub fn is_multicast(&self) -> bool
pub fn is_multicast(&self) -> bool
Check if the network interface is a Multicast interface
Sourcepub fn is_broadcast(&self) -> bool
pub fn is_broadcast(&self) -> bool
Check if the network interface is a Broadcast interface
Sourcepub fn is_running(&self) -> bool
pub fn is_running(&self) -> bool
Check if the network interface is running and ready to send/receive packets
Sourcepub fn is_physical(&self) -> bool
pub fn is_physical(&self) -> bool
Check if the network interface is a physical interface
Sourcepub fn ipv4_addrs(&self) -> Vec<Ipv4Addr>
pub fn ipv4_addrs(&self) -> Vec<Ipv4Addr>
Returns a list of IPv4 addresses assigned to this interface.
Sourcepub fn ipv6_addrs(&self) -> Vec<Ipv6Addr>
pub fn ipv6_addrs(&self) -> Vec<Ipv6Addr>
Returns a list of IPv6 addresses assigned to this interface.
Sourcepub fn ip_addrs(&self) -> Vec<IpAddr>
pub fn ip_addrs(&self) -> Vec<IpAddr>
Returns a list of all IP addresses (both IPv4 and IPv6) assigned to this interface.
Sourcepub fn has_global_ipv4(&self) -> bool
pub fn has_global_ipv4(&self) -> bool
Returns true if this interface has at least one globally routable IPv4 address.
Sourcepub fn has_global_ipv6(&self) -> bool
pub fn has_global_ipv6(&self) -> bool
Returns true if this interface has at least one globally routable IPv6 address.
Sourcepub fn has_global_ip(&self) -> bool
pub fn has_global_ip(&self) -> bool
Returns true if this interface has at least one globally routable IP address (v4 or v6).
Sourcepub fn global_ipv4_addrs(&self) -> Vec<Ipv4Addr>
pub fn global_ipv4_addrs(&self) -> Vec<Ipv4Addr>
Returns a list of globally routable IPv4 addresses assigned to this interface.
Sourcepub fn global_ipv6_addrs(&self) -> Vec<Ipv6Addr>
pub fn global_ipv6_addrs(&self) -> Vec<Ipv6Addr>
Returns a list of globally routable IPv6 addresses assigned to this interface.
Sourcepub fn global_ip_addrs(&self) -> Vec<IpAddr>
pub fn global_ip_addrs(&self) -> Vec<IpAddr>
Returns a list of globally routable IP addresses (both IPv4 and IPv6).