Skip to main content

ip_discovery/http/
providers.rs

1//! Built-in HTTP providers
2
3use super::{parse_cloudflare_trace, HttpProvider};
4use crate::provider::BoxedProvider;
5
6/// Cloudflare trace endpoint
7pub fn cloudflare() -> HttpProvider {
8    HttpProvider::new("Cloudflare", "https://1.1.1.1/cdn-cgi/trace")
9        .with_parser(parse_cloudflare_trace)
10}
11
12/// AWS checkip service
13pub fn aws() -> HttpProvider {
14    HttpProvider::new("AWS", "https://checkip.amazonaws.com")
15}
16
17/// List all available HTTP provider names
18pub fn provider_names() -> &'static [&'static str] {
19    &["Cloudflare", "AWS"]
20}
21
22/// Get default HTTP providers
23pub fn default_providers() -> Vec<BoxedProvider> {
24    vec![Box::new(cloudflare()), Box::new(aws())]
25}