```rust use ipdb::Reader; use anyhow::; use lazy_static::;
lazystatic!{ static ref IPDB:Reader={ Reader::openfile("ipipfree.ipdb").unwrap() }; }
fn main()->Result<()> {
let r= IPDB.find("199.193.127.3","CN")?;
println!("{:?}",r);
let r= IPDB.findcityinfo("199.193.127.3","CN")?;
println!("{:?}",r);
let r= IPDB.finddistrictinfo("199.193.127.3","CN")?;
println!("{:?}",r);
let r= IPDB.findidcinfo("199.193.127.3","CN")?;
println!("{:?}",r);
let r= IPDB.findbasestationinfo("199.193.127.3","CN")?;
println!("{:?}",r);
Ok(())
}
shell
.../.cargo/bin/cargo.exe run --color=always --package ipdb --example main
Finished dev [unoptimized + debuginfo] target(s) in 0.05s
Running target\debug\examples\main.exe
["美国", "加利福尼亚州", "洛杉矶", "", "it7.net", "34.052234", "-118.243685", "America/LosAngeles", "UTC-7", "", "1", "US", "NA"]
CityInfo { countryname: "美国", regionname: "加利福尼亚州", cityname: "洛杉矶", ownerdomain: "", ispdomain: "it7.net", latitude: "34.052234", longitude: "-118.243685", timezone: "America/LosAngeles", utcoffset: "UTC-7", chinaadmincode: "", iddcode: "1", countrycode: "US", continentcode: "NA", idc: "", basestation: "", countrycode3: "", europeanunion: "", currencycode: "", currencyname: "", anycast: "" }
DistrictInfo { countryname: "美国", regionname: "加利福尼亚州", cityname: "洛杉矶", ownerdomain: "", ispdomain: "it7.net", latitude: "34.052234", longitude: "-118.243685" }
IdcInfo { countryname: "美国", regionname: "加利福尼亚州", cityname: "洛杉矶", ownerdomain: "", ispdomain: "it7.net", idc: "34.052234" }
BaseStationInfo { countryname: "美国", regionname: "加利福尼亚州", cityname: "洛杉矶", ownerdomain: "", ispdomain: "it7.net", base_station: "34.052234" }
Process finished with exit code 0 ```
shell
running 12 tests
test bench05::test_ipdb ... bench: 1,046 ns/iter (+/- 118)
test bench05::test_ipdb_rs ... bench: 1,134 ns/iter (+/- 34)
test bench10::test_ipdb ... bench: 527 ns/iter (+/- 16)
test bench10::test_ipdb_rs ... bench: 1,130 ns/iter (+/- 66)
test bench20::test_ipdb ... bench: 529 ns/iter (+/- 18)
test bench20::test_ipdb_rs ... bench: 1,130 ns/iter (+/- 58)
test bench40::test_ipdb ... bench: 527 ns/iter (+/- 52)
test bench40::test_ipdb_rs ... bench: 1,129 ns/iter (+/- 37)
test bench60::test_ipdb ... bench: 528 ns/iter (+/- 17)
test bench60::test_ipdb_rs ... bench: 1,133 ns/iter (+/- 74)
test bench80::test_ipdb ... bench: 527 ns/iter (+/- 21)
test bench80::test_ipdb_rs ... bench: 1,128 ns/iter (+/- 49)