mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-01 11:02:14 +00:00
29ddf4dbc8
* init rustfs config * init rustfs-utils crate * improve code for rustfs-config crate * add * improve code for comment * init rustfs config * improve code for rustfs-config crate * add * improve code for comment * Unified management of configurations and constants * fix: modify rustfs-config crate name * add default fn * improve code for rustfs config * refactor: standardize constant management and fix typos - Create centralized constants module for global static constants - Replace runtime format! expressions with compile-time constants - Fix DEFAULT_PORT reference issues in configuration arguments - Use const-str crate for compile-time string concatenation - Update tokio dependency from 1.42.2 to 1.45.0 - Ensure consistent naming convention for configuration constants * fix * Update common/workers/src/workers.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
44 lines
1.2 KiB
Rust
44 lines
1.2 KiB
Rust
use std::net::{IpAddr, Ipv4Addr};
|
|
|
|
/// Get the IP address of the machine
|
|
///
|
|
/// Priority is given to trying to get the IPv4 address, and if it fails, try to get the IPv6 address.
|
|
/// If both fail to retrieve, None is returned.
|
|
///
|
|
/// # Returns
|
|
///
|
|
/// * `Some(IpAddr)` - Native IP address (IPv4 or IPv6)
|
|
/// * `None` - Unable to obtain any native IP address
|
|
pub fn get_local_ip() -> Option<IpAddr> {
|
|
local_ip_address::local_ip()
|
|
.ok()
|
|
.or_else(|| local_ip_address::local_ipv6().ok())
|
|
}
|
|
|
|
/// Get the IP address of the machine as a string
|
|
///
|
|
/// If the IP address cannot be obtained, returns "127.0.0.1" as the default value.
|
|
///
|
|
/// # Returns
|
|
///
|
|
/// * `String` - Native IP address (IPv4 or IPv6) as a string, or the default value
|
|
pub fn get_local_ip_with_default() -> String {
|
|
get_local_ip()
|
|
.unwrap_or_else(|| IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1))) // Provide a safe default value
|
|
.to_string()
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn test_get_local_ip() {
|
|
match get_local_ip() {
|
|
Some(ip) => println!("the ip address of this machine:{}", ip),
|
|
None => println!("Unable to obtain the IP address of the machine"),
|
|
}
|
|
assert!(get_local_ip().is_some());
|
|
}
|
|
}
|