Crates.io | ip-api-client |
lib.rs | ip-api-client |
version | 0.5.1 |
source | src |
created_at | 2022-04-04 13:54:38.034886 |
updated_at | 2024-03-08 22:41:09.953738 |
description | The client (based on ip-api.com api) allows you to get information about the IP address |
homepage | https://github.com/Mixerou/ip-api-client-rs |
repository | https://github.com/Mixerou/ip-api-client-rs |
max_upload_size | |
id | 562012 |
size | 36,737 |
The client (based on ip-api.com api) allows you to get information about the IP address
Add to project
[dependencies]
ip-api-client = "0.5.1"
tokio = { version = "1.36.0", features = ["macros", "rt-multi-thread"], default-features = false }
Write some Rust
use ip_api_client as Client;
use ip_api_client::{IpApiLanguage, IpData};
#[tokio::main]
async fn main() {
// You can
// `generate_empty_config` (to create your own config from scratch)
// `generate_minimum_config` (that includes only important fields)
// `generate_maximum_config` (that includes all fields)
let ip_data: IpData = Client::generate_empty_config()
// or `exclude_country` if this field is already included
// in the generated config
.include_country()
// or `exclude_currency` if this field is already included in
// the generated config
.include_currency()
// available languages: de/en (default)/es/fr/ja/pt-Br/ru/zh-CN
.set_language(IpApiLanguage::De)
// `make_request` takes
// "ip"/"domain"/"empty string (if you want to request your ip)"
.make_request("1.1.1.1")
.await
.unwrap();
println!(
"{}'s national currency is {}",
ip_data.country.unwrap(),
ip_data.currency.unwrap(),
);
// If you want to request more than one ip, you can use `make_batch_request`
let ip_batch_data: Vec<IpData> = Client::generate_empty_config()
.include_isp()
// `make_batch_request` takes "IPv4"/"IPv6"
.make_batch_request(vec!["1.1.1.1", "8.8.8.8"])
.await
.unwrap();
println!(
"1.1.1.1 belongs to `{}` and 8.8.8.8 belongs to `{}`",
ip_batch_data.get(0).unwrap().isp.as_ref().unwrap(),
ip_batch_data.get(1).unwrap().isp.as_ref().unwrap(),
);
}
as_field
instead of as
(As stated in the ip-api.com API documentation)
since it is a strict keyword in rust,
such as pub
, impl
or struct
.This library (ip-api-client) is available under the MIT license. See the LICENSE file for more info.