Skip to content
เข้าสู่ระบบ

Net Enums

Networking enums

use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
fn main() {
// IpAddr variants: V4 and V6
let v4: IpAddr = IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1));
let v6: IpAddr = IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1));
println!("=== IpAddr ===");
println!("IPv4: {}", v4);
println!("IPv6: {}", v6);
// Check type
println!("\n=== Type Checks ===");
println!("v4.is_ipv4(): {}", v4.is_ipv4());
println!("v4.is_ipv6(): {}", v4.is_ipv6());
println!("v6.is_ipv4(): {}", v6.is_ipv4());
println!("v6.is_ipv6(): {}", v6.is_ipv6());
// From string
let parsed: IpAddr = "192.168.1.1".parse().unwrap();
println!("\nParsed: {}", parsed);
let parsed_v6: IpAddr = "::1".parse().unwrap();
println!("Parsed v6: {}", parsed_v6);
// Match on variant
fn describe(ip: IpAddr) {
match ip {
IpAddr::V4(addr) => println!("IPv4: {:?}", addr.octets()),
IpAddr::V6(addr) => println!("IPv6: {:?}", addr.segments()),
}
}
describe(v4);
describe(v6);
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด