```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);
let r= IPDB.findmap("199.193.127.3","CN")?;
println!("{:?}",r);
Ok(())
}
shell
cargo.exe run --color=always --package ipdb --example main
Finished dev [unoptimized + debuginfo] target(s) in 0.04s
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", basestation: "34.052234" }
{"chinaadmincode": "", "cityname": "洛杉矶", "continentcode": "NA", "countrycode": "US", "countryname": "美国", "iddcode": "1", "ispdomain": "it7.net", "latitude": "34.052234", "longitude": "-118.243685", "ownerdomain": "", "regionname": "加利福尼亚州", "timezone": "America/LosAngeles", "utcoffset": "UTC-7"}
Process finished with exit code 0
```
```shell running 12 tests test bench0500::testipdb ... bench: 261,625 ns/iter (+/- 13,556) test bench0500::testipdbrs ... bench: 318,980 ns/iter (+/- 9,253) test bench1000::testipdb ... bench: 522,450 ns/iter (+/- 9,787) test bench1000::testipdbrs ... bench: 635,570 ns/iter (+/- 17,337) test bench2000::testipdb ... bench: 1,048,630 ns/iter (+/- 71,659) test bench2000::testipdbrs ... bench: 1,273,910 ns/iter (+/- 43,754) test bench4000::testipdb ... bench: 2,096,190 ns/iter (+/- 33,412) test bench4000::testipdbrs ... bench: 2,554,980 ns/iter (+/- 36,575) test bench6000::testipdb ... bench: 3,140,700 ns/iter (+/- 52,065) test bench6000::testipdbrs ... bench: 3,837,500 ns/iter (+/- 49,432) test bench8000::testipdb ... bench: 4,191,190 ns/iter (+/- 49,141) test bench8000::testipdbrs ... bench: 5,121,350 ns/iter (+/- 47,059)
test result: ok. 0 passed; 0 failed; 0 ignored; 12 measured; 0 filtered out; finished in 7.99s ```