Skip to main content

parse_ipv4_literal

Function parse_ipv4_literal 

Source
pub fn parse_ipv4_literal(s: &str) -> Option<[u8; 4]>
Expand description

Parses an IPv4 literal into network-order octets.

Input must be in standard dotted-decimal format: A.B.C.D where each octet is 0-255.

Returns None if the format is invalid.

§Example

assert_eq!(parse_ipv4_literal("192.168.1.10"), Some([192, 168, 1, 10]));
assert_eq!(parse_ipv4_literal("10.0.0.1"), Some([10, 0, 0, 1]));
assert_eq!(parse_ipv4_literal("0.0.0.0"), Some([0, 0, 0, 0]));
assert_eq!(parse_ipv4_literal("255.255.255.255"), Some([255, 255, 255, 255]));

// Invalid formats
assert_eq!(parse_ipv4_literal(""), None);
assert_eq!(parse_ipv4_literal("192.168.1"), None);      // too few octets
assert_eq!(parse_ipv4_literal("192.168.1.1.1"), None);  // too many octets
assert_eq!(parse_ipv4_literal("256.1.1.1"), None);      // octet > 255
assert_eq!(parse_ipv4_literal("abc.def.ghi.jkl"), None); // non-numeric