Add error checking
This commit is contained in:
parent
7d91220e99
commit
af2561bc30
41
src/main.rs
41
src/main.rs
@ -30,8 +30,8 @@ async fn main() {
|
|||||||
|
|
||||||
// Length check
|
// Length check
|
||||||
if targets.len() == 0 {
|
if targets.len() == 0 {
|
||||||
eprintln!("Fatal: No targets given.");
|
eprintln!("{}: No targets given, will default to your IP", "Warning".yellow());
|
||||||
std::process::exit(1);
|
targets.push("".to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
let client = reqwest::Client::new();
|
let client = reqwest::Client::new();
|
||||||
@ -39,15 +39,42 @@ async fn main() {
|
|||||||
for (i, target) in targets.into_iter().enumerate() {
|
for (i, target) in targets.into_iter().enumerate() {
|
||||||
if i > 0 { print!("\n") };
|
if i > 0 { print!("\n") };
|
||||||
|
|
||||||
let req = client
|
let req = match client
|
||||||
.get(format!("http://ip-api.com/json/{target}?fields=18601977"))
|
.get(format!("http://ip-api.com/json/{target}?fields=18610169"))
|
||||||
.send()
|
.send()
|
||||||
.await
|
.await {
|
||||||
.unwrap();
|
Ok(r) => r,
|
||||||
|
Err(e) => {
|
||||||
|
eprintln!("{}: {e:?}", "Error".red());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
let body = req.text().await.unwrap();
|
let body = req.text().await.unwrap();
|
||||||
|
|
||||||
let data = json::parse(&body.to_owned()).unwrap();
|
let data = match json::parse(&body.to_owned()) {
|
||||||
|
Ok(j) => j,
|
||||||
|
Err(e) => {
|
||||||
|
eprintln!("{}: {e:?}", "Fatal".red());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if data["status"] == "fail" {
|
||||||
|
let message = data["message"].as_str().unwrap();
|
||||||
|
let msg = match message {
|
||||||
|
"reserved range" => "Queried reserved IP",
|
||||||
|
"private range" => "Queried private IP",
|
||||||
|
"invalid query" => "Invalid IP",
|
||||||
|
"SSL unavailable for this endpoint, order a key at https://members.ip-api.com/" => "Unable to use HTTPS endpoint",
|
||||||
|
_ => { message }
|
||||||
|
};
|
||||||
|
|
||||||
|
eprintln!("{}: {msg}", "Error".red());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
let target = if target.is_empty() { data["query"].as_str().unwrap().to_string() } else { target };
|
||||||
println!("Target {}", target.bright_white().bold());
|
println!("Target {}", target.bright_white().bold());
|
||||||
if !data["continent"].is_empty() { println!("Continent {}", data["continent"].as_str().unwrap().yellow()) }
|
if !data["continent"].is_empty() { println!("Continent {}", data["continent"].as_str().unwrap().yellow()) }
|
||||||
if !data["country"].is_empty() { println!("Country {}", data["country"].as_str().unwrap().yellow()) }
|
if !data["country"].is_empty() { println!("Country {}", data["country"].as_str().unwrap().yellow()) }
|
||||||
|
Loading…
Reference in New Issue
Block a user