ip_discovery/http/
providers.rs1use super::{parse_cloudflare_trace, HttpProvider};
4use crate::provider::BoxedBlockingProvider;
5#[cfg(feature = "tokio")]
6use crate::provider::BoxedProvider;
7
8pub fn cloudflare() -> HttpProvider {
10 HttpProvider::new("Cloudflare", "https://1.1.1.1/cdn-cgi/trace")
11 .with_parser(parse_cloudflare_trace)
12}
13
14pub fn aws() -> HttpProvider {
16 HttpProvider::new("AWS", "https://checkip.amazonaws.com")
17}
18
19pub fn provider_names() -> &'static [&'static str] {
21 &["Cloudflare", "AWS"]
22}
23
24pub fn default_blocking_providers() -> Vec<BoxedBlockingProvider> {
26 vec![Box::new(cloudflare()), Box::new(aws())]
27}
28
29#[cfg(feature = "tokio")]
31pub fn default_providers() -> Vec<BoxedProvider> {
32 vec![Box::new(cloudflare()), Box::new(aws())]
33}