1+ //! Provides functions to parse input IP addresses, CIDRs or files.
12use std:: fs:: File ;
23use std:: io:: { prelude:: * , BufReader } ;
34use std:: net:: { IpAddr , ToSocketAddrs } ;
@@ -13,8 +14,18 @@ use trust_dns_resolver::{
1314use crate :: input:: Opts ;
1415use crate :: warning;
1516
16- /// Goes through all possible IP inputs (files or via argparsing)
17- /// Parses the string(s) into IPs
17+ /// Parses the string(s) into IP addresses.
18+ ///
19+ /// Goes through all possible IP inputs (files or via argparsing).
20+ ///
21+ /// ```rust
22+ /// # use rustscan::input::Opts;
23+ /// # use rustscan::address::parse_addresses;
24+ /// let mut opts = Opts::default();
25+ /// opts.addresses = vec!["192.168.0.0/30".to_owned()];
26+ ///
27+ /// let ips = parse_addresses(&opts);
28+ /// ```
1829pub fn parse_addresses ( input : & Opts ) -> Vec < IpAddr > {
1930 let mut ips: Vec < IpAddr > = Vec :: new ( ) ;
2031 let mut unresolved_addresses: Vec < & str > = Vec :: new ( ) ;
@@ -59,8 +70,15 @@ pub fn parse_addresses(input: &Opts) -> Vec<IpAddr> {
5970}
6071
6172/// Given a string, parse it as a host, IP address, or CIDR.
73+ ///
6274/// This allows us to pass files as hosts or cidr or IPs easily
6375/// Call this every time you have a possible IP_or_host
76+ ///
77+ /// ```rust
78+ /// # use rustscan::address::parse_address;
79+ /// # use trust_dns_resolver::Resolver;
80+ /// let ips = parse_address("127.0.0.1", &Resolver::default().unwrap());
81+ /// ```
6482pub fn parse_address ( address : & str , resolver : & Resolver ) -> Vec < IpAddr > {
6583 IpCidr :: from_str ( address)
6684 . map ( |cidr| cidr. iter ( ) . collect ( ) )
0 commit comments