geoip

Crates.iogeoip
lib.rsgeoip
version0.0.14
sourcesrc
created_at2014-11-26 02:59:13.171539
updated_at2021-07-11 07:06:41.282306
descriptionBindings for the GeoIP library
homepagehttps://github.com/jedisct1/rust-geoip
repositoryhttps://github.com/jedisct1/rust-geoip
max_upload_size
id400
size21,382
Frank Denis (jedisct1)

documentation

README

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 = GeoIp::open_type(DBType::CityEditionRev1, Options::MemoryCache).unwrap();
// Open by Path
let geoip = GeoIp::open(&Path::new("/opt/geoip/GeoLiteCity.dat"),
						Options::MemoryCache)
	.unwrap();
/*
GeoIp {
	info: Ok(
		"GEO-133 20160621 Build 1 Copyright (c) 2016 MaxMind Inc All Rights Re"
	)
}
*/

// Query by IP
let ip = IpAddr::V4("8.8.8.8".parse().unwrap());
let res = geoip.city_info_by_ip(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 = GeoIp::region_name_by_code("US", "CA");
// Some("California")

// Get time zone inforamtion (as compiled in the C library)
let time_zone = GeoIp::time_zone_by_country_and_region("US", "CA");
// Some("America/Los_Angeles")

AS Database:

// Open by Path
let geoip = GeoIp::open(&Path::new("/opt/geoip/GeoIPASNum.dat"),
						Options::MemoryCache)
	.unwrap();
/*
GeoIp {
	info: Ok(
		"GEO-117 20160627 Build 1 Copyright (c) 2016 MaxMind Inc All Rights Re"
	)
}
*/

// Query by IP
let ip = IpAddr::V4("8.8.8.8".parse().unwrap());
let res = geoip.as_info_by_ip(ip).unwrap();
/*
ASInfo {
	asn: 15169,
	name: "Google Inc.",
	netmask: 24
}
*/
Commit count: 134

cargo fmt