@@ -69,6 +69,7 @@ func init() {
6969 scanCmd .Flags ().Int ("edns-size" , 1232 , "EDNS0 UDP payload size in bytes (default 1232, lower if fragmented)" )
7070 scanCmd .Flags ().Int ("query-size" , 0 , "cap dnstt-client upstream query size in bytes (0 = max, try 50-80 if e2e fails)" )
7171 scanCmd .Flags ().StringSlice ("cidr" , nil , "CIDR range(s) to scan (e.g. --cidr 5.52.0.0/16)" )
72+ scanCmd .Flags ().String ("cidr-file" , "" , "text file with one CIDR range per line to scan" )
7273 scanCmd .Flags ().String ("output-ips" , "" , "write plain IP list (one per line) to this file" )
7374 scanCmd .Flags ().Int ("e2e-top" , 100 , "number of top SOCKS-passing resolvers to full-verify with curl" )
7475 scanCmd .Flags ().Int ("top" , 10 , "number of top results to display" )
@@ -92,6 +93,22 @@ func runScan(cmd *cobra.Command, args []string) error {
9293 ednsSize , _ := cmd .Flags ().GetInt ("edns-size" )
9394 querySize , _ := cmd .Flags ().GetInt ("query-size" )
9495 cidrRanges , _ := cmd .Flags ().GetStringSlice ("cidr" )
96+ cidrFile , _ := cmd .Flags ().GetString ("cidr-file" )
97+
98+ // Load additional CIDRs from file if provided
99+ if cidrFile != "" {
100+ raw , err := os .ReadFile (cidrFile )
101+ if err != nil {
102+ return fmt .Errorf ("reading --cidr-file %q: %w" , cidrFile , err )
103+ }
104+ for _ , line := range strings .Split (string (raw ), "\n " ) {
105+ line = strings .TrimSpace (line )
106+ if line == "" || strings .HasPrefix (line , "#" ) {
107+ continue
108+ }
109+ cidrRanges = append (cidrRanges , line )
110+ }
111+ }
95112
96113 // Apply query size (dnstt-client MTU); 0 = use max
97114 if querySize < 0 {
@@ -132,7 +149,11 @@ func runScan(cmd *cobra.Command, args []string) error {
132149 if len (expanded ) == 0 {
133150 return fmt .Errorf ("CIDR range(s) produced no usable IPs" )
134151 }
135- fmt .Fprintf (os .Stderr , " --cidr: expanded %d range(s) to %d IPs\n " , len (cidrRanges ), len (expanded ))
152+ src := "--cidr"
153+ if cidrFile != "" {
154+ src = "--cidr-file"
155+ }
156+ fmt .Fprintf (os .Stderr , " %s: expanded %d range(s) to %d IPs\n " , src , len (cidrRanges ), len (expanded ))
136157 ips = expanded
137158 } else {
138159 var err error
0 commit comments