本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。