1use std::process::Command;
2
3use regex::Regex;
4
5pub fn check_ip(ip: String) -> f64 {
6 let output = Command::new("cmd").arg("/c").arg(format!("ping -n 3 -w 3 {}", ip)).output().expect("执行ping命令失败");
7 let out = String::from_utf8_lossy(&output.stdout);
8
9 let lose_time = Regex::new(r"Lost = (\d+)").unwrap();
10 let waste_time = Regex::new(r"Average = (\d+)").unwrap();
11
12 let mut lose:f64 = 3.0;
13 if let Some(cap) = lose_time.captures(&out) {
14 lose = (cap.get(1).unwrap().as_str()).parse::<f64>().unwrap();
15 }
16 if lose > 2.0 {
17 1000.0
18 } else {
19 if let Some(cap) = waste_time.captures(&out) {
20 let average_time = (cap.get(1).unwrap().as_str()).parse::<f64>().unwrap();
21 average_time
22 } else {
23 1000.0
24 }
25 }
26}