@@ -52,7 +52,7 @@ def progerss_monitor(conn):
5252
5353
5454is_recving = False
55- def scanner (udp_skt : socket .socket , addr : str , interval : float ):
55+ def scanner (udp_skt : socket .socket , addr : str , interval : float , threads : int ):
5656 global is_recving , prog_mon
5757 pbar = tqdm (iterable = range (65536 ), desc = "Scaning progress" ,
5858 leave = False , unit = "Port" , unit_scale = False )
@@ -62,7 +62,7 @@ def scanner(udp_skt: socket.socket, addr: str, interval: float):
6262 threading .Thread (target = recv_packets , args = (
6363 udp_skt , pbar ), daemon = True ).start ()
6464
65- port_ranges = split_list (65536 , mp . cpu_count () - 1 )
65+ port_ranges = split_list (65536 , threads )
6666
6767 parent_conn , child_conn = mp .Pipe ()
6868
@@ -131,6 +131,8 @@ def exec_cmd_async(cmd: str, variables: dict = [None]) -> None:
131131 help = "send packet interval. recommand 0.01~0.0001" )
132132 parser .add_argument ("-p" , "--port" , default = random .randint (1024 , 65535 ), type = int ,
133133 help = "local port for send packet" )
134+ parser .add_argument ("-t" , "--threads" , default = (mp .cpu_count () - 1 ), type = int ,
135+ help = "number of threads used to scan" )
134136 parser .add_argument ("-do" , "--display-online" , default = 0 , type = int ,
135137 help = "only displayed when the number of online players is greater than or equal to this value" )
136138 parser .add_argument ("-e" , "--exec-cmd" , default = "" , type = str ,
@@ -148,8 +150,9 @@ def exec_cmd_async(cmd: str, variables: dict = [None]) -> None:
148150 display_online = args .display_online
149151 exec_cmd = args .exec_cmd
150152 use_ipv6 = args .use_ipv6
153+ threads = args .threads
151154
152155 udp_skt = get_udp_socket (local_port , use_ipv6 = use_ipv6 )
153156
154157 for addr in get_ip_list (addr ):
155- scanner (udp_skt , addr , interval )
158+ scanner (udp_skt , addr , interval , threads )
0 commit comments