feat: basic port testing functionality using nc

This commit is contained in:
Muhammad Nauman Raza 2024-05-19 12:15:47 +01:00
parent 51d418d7b8
commit f7457e4c6e
3 changed files with 26 additions and 4 deletions

7
Cargo.lock generated
View file

@ -93,6 +93,12 @@ version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
[[package]]
name = "owo-colors"
version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f"
[[package]] [[package]]
name = "pinger" name = "pinger"
version = "1.1.1" version = "1.1.1"
@ -194,6 +200,7 @@ checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
name = "sage" name = "sage"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"owo-colors",
"pinger", "pinger",
] ]

View file

@ -4,4 +4,5 @@ version = "0.1.0"
edition = "2021" edition = "2021"
[dependencies] [dependencies]
owo-colors = "4.0.0"
pinger = "1.1.1" pinger = "1.1.1"

View file

@ -1,10 +1,24 @@
use std::io::prelude::*; use std::io::prelude::*;
use std::net::TcpStream; use std::process::Command;
use owo_colors::OwoColorize;
fn main() -> std::io::Result<()> { fn main() -> std::io::Result<()> {
let mut stream = TcpStream::connect("100.64.0.2")?; let ports = [80, 443, 8448];
for port in ports {
let netcat = Command::new("nc")
.arg("-vz")
.arg("devraza.giize.com")
.arg(format!("{}", port))
.output()?;
stream.write(&[1])?; let splitted = std::str::from_utf8(&netcat.stderr[..]).unwrap().split(" ");
stream.read(&mut [0; 128])?; let collection = &splitted.collect::<Vec<&str>>();
if collection[7] == "succeeded!\n" {
println!("{} {} {}", "".green(), collection[2], collection[4]);
} else {
println!("{} {} {}", "".red(), collection[3], collection[6]);
}
}
Ok(()) Ok(())
} }