Crate ip_api_client

source ·
Expand description

The client (based on ip-api.com API) allows you to get information about the IP address

Example

use ip_api_client as Client;
use ip_api_client::{IpApiLanguage, IpData};

// 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").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"]).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(),
);

Structs

Configuration structure allows you to customize the requested fields in the request to save traffic
The data that will be received after the making a request

Enums

Represents all the ways that a request can fail
Represents all available languages for IpData

Functions

Create an empty config to create your own from scratch
Generate maximum config that includes all fields
Generate minimum config that includes only important fields