本文简要介绍rust语言中 std::net::Ipv4Addr.is_global
的用法。
用法
pub fn is_global(&self) -> bool
如果地址看起来是全局可路由的,则返回 true
。请参阅iana-ipv4-special-registry。
以下返回 false
:
- 私人地址(见
Ipv4Addr::is_private()
) - 环回地址(参见
Ipv4Addr::is_loopback()
) - link-local 地址(参见
Ipv4Addr::is_link_local()
) - 广播地址(见
Ipv4Addr::is_broadcast()
) - 用于文档的地址(请参阅
Ipv4Addr::is_documentation()
) - 未指定的地址(参见
Ipv4Addr::is_unspecified()
)和整个0.0.0.0/8
块 - 为将来的协议保留的地址,除了可全局路由的
192.0.0.9/32
和192.0.0.10/32
- 保留供将来使用的地址(请参阅
Ipv4Addr::is_reserved()
- 为网络设备基准测试保留的地址(请参阅
Ipv4Addr::is_benchmarking()
)
例子
#![feature(ip)]
use std::net::Ipv4Addr;
// private addresses are not global
assert_eq!(Ipv4Addr::new(10, 254, 0, 0).is_global(), false);
assert_eq!(Ipv4Addr::new(192, 168, 10, 65).is_global(), false);
assert_eq!(Ipv4Addr::new(172, 16, 10, 65).is_global(), false);
// the 0.0.0.0/8 block is not global
assert_eq!(Ipv4Addr::new(0, 1, 2, 3).is_global(), false);
// in particular, the unspecified address is not global
assert_eq!(Ipv4Addr::new(0, 0, 0, 0).is_global(), false);
// the loopback address is not global
assert_eq!(Ipv4Addr::new(127, 0, 0, 1).is_global(), false);
// link local addresses are not global
assert_eq!(Ipv4Addr::new(169, 254, 45, 1).is_global(), false);
// the broadcast address is not global
assert_eq!(Ipv4Addr::new(255, 255, 255, 255).is_global(), false);
// the address space designated for documentation is not global
assert_eq!(Ipv4Addr::new(192, 0, 2, 255).is_global(), false);
assert_eq!(Ipv4Addr::new(198, 51, 100, 65).is_global(), false);
assert_eq!(Ipv4Addr::new(203, 0, 113, 6).is_global(), false);
// shared addresses are not global
assert_eq!(Ipv4Addr::new(100, 100, 0, 0).is_global(), false);
// addresses reserved for protocol assignment are not global
assert_eq!(Ipv4Addr::new(192, 0, 0, 0).is_global(), false);
assert_eq!(Ipv4Addr::new(192, 0, 0, 255).is_global(), false);
// addresses reserved for future use are not global
assert_eq!(Ipv4Addr::new(250, 10, 20, 30).is_global(), false);
// addresses reserved for network devices benchmarking are not global
assert_eq!(Ipv4Addr::new(198, 18, 0, 0).is_global(), false);
// All the other addresses are global
assert_eq!(Ipv4Addr::new(1, 1, 1, 1).is_global(), true);
assert_eq!(Ipv4Addr::new(80, 9, 12, 3).is_global(), true);
相关用法
- Rust Ipv4Addr.is_link_local用法及代码示例
- Rust Ipv4Addr.is_loopback用法及代码示例
- Rust Ipv4Addr.is_private用法及代码示例
- Rust Ipv4Addr.is_reserved用法及代码示例
- Rust Ipv4Addr.is_broadcast用法及代码示例
- Rust Ipv4Addr.is_benchmarking用法及代码示例
- Rust Ipv4Addr.is_multicast用法及代码示例
- Rust Ipv4Addr.is_documentation用法及代码示例
- Rust Ipv4Addr.is_shared用法及代码示例
- Rust Ipv4Addr.is_unspecified用法及代码示例
- Rust Ipv4Addr.new用法及代码示例
- Rust Ipv4Addr.to_ipv6_compatible用法及代码示例
- Rust Ipv4Addr.to_ipv6_mapped用法及代码示例
- Rust Ipv4Addr.octets用法及代码示例
- Rust Ipv4Addr用法及代码示例
- Rust Ipv6Addr.is_multicast用法及代码示例
- Rust Ipv6Addr.is_documentation用法及代码示例
- Rust Ipv6Addr.is_unspecified用法及代码示例
- Rust Ipv6Addr.octets用法及代码示例
- Rust Ipv6Addr.multicast_scope用法及代码示例
- Rust Ipv6Addr.is_unicast_link_local用法及代码示例
- Rust Ipv6Addr.to_ipv4用法及代码示例
- Rust Ipv6Addr.to_canonical用法及代码示例
- Rust Ipv6Addr.is_unique_local用法及代码示例
- Rust Ipv6Addr.is_benchmarking用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::net::Ipv4Addr.is_global。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。