5个版本
0.1.5 | 2023年3月8日 |
---|---|
0.1.4 | 2023年3月7日 |
0.1.3 | 2022年10月28日 |
0.1.1 | 2022年10月25日 |
0.1.0 | 2022年10月24日 |
#5 in #countries
28KB
572 行
IP2C
从IP地址获取国家和地区名称的代码。
您可以直接使用 rir::IpCodeMap
构建 IP 到国家地区名称表示的代码。
use ip2c::rir::IpCodeMap;
let mut map = IpCodeMap::new();
map.load_from_dir("./data").expect("load rir txt info failed");
let code = map.query("127.0.0.1".parse().unwrap());
println!("{}", code.unwrap());
此库不提供rir信息文件,您需要自行下载。
有关下载URL和官方txt格式的示例,请参阅example.txt。
此外,您还可以使用 IpTree
构建 IP 城市位置映射,例如
use ip2c::IpTree;
let mut map = IpTree::new();
map.ipv4.insert_interval("101.204.128.0-101.204.130.0".parse().unwrap(), ("sichuan", "chengdu")).unwrap();
map.ipv4.insert_interval("208.0.0.0/22".parse().unwrap(), ("beijing", "beijing")).unwrap();
map.ipv4.insert_interval("208.1.3.6".parse().unwrap(), ("beijing", "beijing")).unwrap();
assert_eq!(map.ipv4.query("101.204.129.1".parse().unwrap()), Some(&("sichuan", "chengdu")));
assert_eq!(map.ipv4.query("208.0.3.47".parse().unwrap()), Some(&("beijing", "beijing")));
assert_eq!(map.ipv4.query("208.11.0.9".parse().unwrap()), None);