rust-geoip
GeoIP bindings for Rust.
Currently only supports:
Installation: use Cargo.
Tested with GeoIP v1.6.9.
Usage:
City Database:
// Open by DBType
let geoip = open_type.unwrap;
// Open by Path
let geoip = open
.unwrap;
/*
GeoIp {
info: Ok(
"GEO-133 20160621 Build 1 Copyright (c) 2016 MaxMind Inc All Rights Re"
)
}
*/
// Query by IP
let ip = V4;
let res = geoip.city_info_by_ip.unwrap;
/*
CityInfo {
country_code: Some(
"US"
),
country_code3: Some(
"USA"
),
country_name: Some(
"United States"
),
region: Some(
"CA"
),
city: Some(
"Mountain View"
),
postal_code: Some(
"94035"
),
latitude: 37.386,
longitude: -122.0838,
dma_code: Some(
807
),
area_code: Some(
650
),
continent_code: Some(
"NA"
),
netmask: 24
}
*/
// Get additional information (as compiled in the C library)
let region_name = region_name_by_code;
// Some("California")
// Get time zone inforamtion (as compiled in the C library)
let time_zone = time_zone_by_country_and_region;
// Some("America/Los_Angeles")
AS Database:
// Open by Path
let geoip = open
.unwrap;
/*
GeoIp {
info: Ok(
"GEO-117 20160627 Build 1 Copyright (c) 2016 MaxMind Inc All Rights Re"
)
}
*/
// Query by IP
let ip = V4;
let res = geoip.as_info_by_ip.unwrap;
/*
ASInfo {
asn: 15169,
name: "Google Inc.",
netmask: 24
}
*/