Re-work crate management
This commit is contained in:
35
snow-scanner/src/worker/utils.rs
Normal file
35
snow-scanner/src/worker/utils.rs
Normal file
@ -0,0 +1,35 @@
|
||||
use rand::seq::SliceRandom;
|
||||
use rand::thread_rng;
|
||||
use std::net::IpAddr;
|
||||
use weighted_rs::{RoundrobinWeight, Weight};
|
||||
|
||||
pub fn get_dns_rr() -> RoundrobinWeight<Vec<IpAddr>> {
|
||||
use std::str::FromStr;
|
||||
|
||||
// https://gist.github.com/mutin-sa/5dcbd35ee436eb629db7872581093bc5
|
||||
let dns_servers: Vec<IpAddr> = vec![
|
||||
IpAddr::from_str("1.1.1.1").unwrap(),
|
||||
IpAddr::from_str("1.0.0.1").unwrap(),
|
||||
IpAddr::from_str("8.8.8.8").unwrap(),
|
||||
IpAddr::from_str("8.8.4.4").unwrap(),
|
||||
IpAddr::from_str("9.9.9.9").unwrap(),
|
||||
IpAddr::from_str("9.9.9.10").unwrap(),
|
||||
IpAddr::from_str("208.67.222.222").unwrap(), // OpenDNS Cisco
|
||||
IpAddr::from_str("208.67.220.220").unwrap(), // OpenDNS Cisco
|
||||
IpAddr::from_str("208.67.222.220").unwrap(), // OpenDNS Cisco
|
||||
IpAddr::from_str("208.67.220.222").unwrap(), // OpenDNS Cisco
|
||||
IpAddr::from_str("193.110.81.0").unwrap(), // dns0.eu AS50902
|
||||
IpAddr::from_str("185.253.5.0").unwrap(), // dns0.eu AS50902
|
||||
IpAddr::from_str("74.82.42.42").unwrap(), // Hurricane Electric [AS6939]
|
||||
];
|
||||
|
||||
let mut rr: RoundrobinWeight<Vec<IpAddr>> = RoundrobinWeight::new();
|
||||
// For each entry in the list we create a lot of two DNS servers to use
|
||||
for _ in &dns_servers {
|
||||
let mut client_servers = dns_servers.clone();
|
||||
client_servers.shuffle(&mut thread_rng());
|
||||
client_servers.truncate(2);
|
||||
rr.add(client_servers, 1);
|
||||
}
|
||||
rr
|
||||
}
|
Reference in New Issue
Block a user