@@ -35,6 +35,64 @@ cargo t -v
3535ip2location = " 0.3.2"
3636```
3737
38+ ### Example
39+ ``` rust
40+ use crate :: {error, Record , DB };
41+
42+ const IPV4BIN : & str = " data/IP2LOCATION-LITE-DB1.BIN" ;
43+ const IPV6BIN : & str = " data/IP2LOCATION-LITE-DB1.IPV6.BIN" ;
44+ const IP2PROXYBIN : & str = " data/IP2PROXY-IP-COUNTRY.BIN" ;
45+
46+ // Lookup an IP v4 in the IP2Location V6 BIN Database
47+ fn ip_lookup_in_ipv6bin () -> Result <(), error :: Error > {
48+ let mut db = DB :: from_file (IPV6BIN )? ;
49+ let record = db . ip_lookup (" 43.224.159.155" . parse (). unwrap ())? ;
50+ let record = if let Record :: LocationDb (rec ) = record {
51+ Some (rec )
52+ } else {
53+ None
54+ };
55+ assert! (record . is_some ());
56+ let record = record . unwrap ();
57+ assert! (! record . country. is_none ());
58+ assert_eq! (record . country. clone (). unwrap (). short_name, " IN" );
59+ assert_eq! (record . country. unwrap (). long_name, " India" );
60+ Ok (())
61+ }
62+
63+ // Lookup an IP v4 in the IP2Location V4 BIN Database
64+ fn ip_lookup_in_ipv4bin () -> Result <(), error :: Error > {
65+ let mut db = DB :: from_file (IPV4BIN )? ;
66+ let record = db . ip_lookup (" 43.224.159.155" . parse (). unwrap ())? ;
67+ let record = if let Record :: LocationDb (rec ) = record {
68+ Some (rec )
69+ } else {
70+ None
71+ };
72+ assert! (record . is_some ());
73+ let record = record . unwrap ();
74+ assert! (! record . country. is_none ());
75+ assert_eq! (record . country. clone (). unwrap (). short_name, " IN" );
76+ assert_eq! (record . country. unwrap (). long_name, " India" );
77+ Ok (())
78+ }
79+
80+ // Lookup an IP in the Proxy Database
81+ fn ip_lookup_in_proxy_bin () -> Result <(), error :: Error > {
82+ let mut db = DB :: from_file (IP2PROXYBIN )? ;
83+ let record = db . ip_lookup (" 1.1.1.1" . parse (). unwrap ())? ;
84+ let record = if let Record :: ProxyDb (rec ) = record {
85+ Some (rec )
86+ } else {
87+ None
88+ };
89+ assert! (record . is_some ());
90+ let record = record . unwrap ();
91+ assert! (! record . country. is_none ());
92+ Ok (())
93+ }
94+ ```
95+
3896### Executing the Example
3997``` bash
4098cargo b --example
0 commit comments