webscan Crates.io License

Cross-platform web scan library
with the aim of being lightweight and fast.

Features

Usage

Add webscan to your dependencies
toml:Cargo.toml [dependencies] webscan = "0.3.0"

Example

URI Scan Example ```rust extern crate webscan; use webscan::{UriScanner, ScanStatus, RequestMethod}; use tokio; use std::fs::{readtostring, read}; use std::time::Duration;

[tokio::main]

async fn main(){ let mut uriscanner = match UriScanner::new(){ Ok(scanner) => (scanner), Err(e) => panic!("Error creating scanner: {}", e), }; let baseuri = String::from("http://localhost:8000/"); uriscanner.setbaseuri(baseuri); let data = readtostring("uris.txt"); let text = match data { Ok(content) => content, Err(e) => {panic!("Could not open or find uris.txt file: {}", e);} }; let wordlist: Vec<&str> = text.trim().split("\n").collect(); for word in wordlist { uriscanner.addword(word.tostring()); } match read("content.txt") { Ok(ct) => { let sep = b'\n'; ct.split(|b| b == &sep ) .foreach(|c| uriscanner.addcontent(c.tovec())); }, Err(e) => {panic!("Could not open or find content.txt file: {}", e);} } uriscanner.setrequestmethod(RequestMethod::Get); uriscanner.settimeout(Duration::frommillis(20000)); uriscanner.setacceptinvalidcerts(false); uriscanner.runscan().await; let result = uriscanner.getresult(); print!("Status: "); match result.scanstatus { ScanStatus::Done => {println!("Normal end")}, ScanStatus::Timeout => {println!("Timed out")}, _ => {println!("Error")}, } println!("URI Scan Result:"); for (uri, status) in result.responses { println!("{} {}", uri, status); } println!("Scan Time: {:?}", result.scan_time); } ```

For more details see Examples

Supported platform