rsubdomain 1.2.14

A high-performance subdomain brute-force tool written in Rust
Documentation
use crate::resolver_defaults::default_resolvers;
use std::net::IpAddr;

use trust_dns_resolver::config::{NameServerConfigGroup, ResolverConfig};

pub(super) fn build_resolver_config(
    resolvers: &[String],
) -> Result<ResolverConfig, Box<dyn std::error::Error>> {
    let resolver_list = if resolvers.is_empty() {
        default_resolvers()
    } else {
        resolvers.to_vec()
    };

    let ips: Vec<IpAddr> = resolver_list
        .iter()
        .map(|resolver| resolver.parse())
        .collect::<Result<Vec<IpAddr>, _>>()?;

    Ok(ResolverConfig::from_parts(
        None,
        vec![],
        NameServerConfigGroup::from_ips_clear(&ips, 53, true),
    ))
}