Crates.io | local-ip-address |
lib.rs | local-ip-address |
version | 0.6.3 |
source | src |
created_at | 2021-06-15 05:14:02.928231 |
updated_at | 2024-09-17 00:17:54.06335 |
description | Retrieve system's local IP address and Network Interfaces/Adapters on Linux, macOS and Windows. |
homepage | https://github.com/EstebanBorai/local-ip-address |
repository | https://github.com/EstebanBorai/local-ip-address |
max_upload_size | |
id | 410254 |
size | 101,657 |
Get the local IP address of your system by executing the local_ip
function:
use local_ip_address::local_ip;
fn main() {
let my_local_ip = local_ip().unwrap();
println!("This is my local IP address: {:?}", my_local_ip);
}
Retrieve all the available network interfaces from both, the AF_INET
and
the AF_INET6
family by executing the list_afinet_netifas
function:
use local_ip_address::list_afinet_netifas;
fn main() {
let network_interfaces = list_afinet_netifas().unwrap();
for (name, ip) in network_interfaces.iter() {
println!("{}:\t{:?}", name, ip);
}
}
Underlying approach on retrieving network interfaces or the local IP address may differ based on the running operative system.
OS | Approach |
---|---|
Linux | Establishes a Netlink socket interchange to retrieve network interfaces |
BSD-based | Uses of getifaddrs to retrieve network interfaces |
Windows | Consumes Win32 API's to retrieve the network adapters table |
Current supported platforms include:
Please note that we only test the BSD implementation of this on macOS and FreeBSD, under the assumption that other BSD-based systems will behave similarly. If you have any complications using this library on the other BSD-based, please create an issue.
In order to create a release you must push a Git tag as follows
git tag -a <version> -m <message>
Example
git tag -a v0.1.0 -m "First release"
Tags must follow semver conventions Tags must be prefixed with a lowercase
v
letter.
Then push tags as follows:
git push origin main --follow-tags
Every contribution to this project is welcome. Feel free to open a pull request, an issue or just by starting this project.
Distributed under the terms of both the MIT license and the Apache License (Version 2.0)