ver = null ips = get_shell.host_computer.File(current_path + "/ips") if not ips then get_shell.host_computer.touch(current_path, "ips") ips = get_shell.host_computer.File(current_path + "/ips") end if // Define a function for the scanning process scanLibrary = function(lib, ver) ipCount = 0 st = time while ipCount < 30 // Change 30 to your desired number of scans, it currently stops after finding 31 ips/libs while 1 ip = getRandomIp if not get_router(ip) or is_lan_ip(ip) then continue end if break end while router = get_router(ip) if lib == "router" then v = router.kernel_version ipCount = ipCount + 1 // Increment the IP address count correctly if not ver then print(ip+" "+lib+" "+v+" > "+current_path+"/ips") print("Time since last found "+(time - st)) st=time cont=ips.get_content.split("\n") while cont.indexOf("") != null cont.remove(cont.indexOf("")) end while cont.push(ip+" "+lib+"#"+v) ips.set_content(cont.join(char(10))) continue end if if v == ver then print(ip+" "+lib+" "+v+" > "+current_path+"/ips") print("Time since last found "+(time - st)) st=time cont=ips.get_content.split("\n") while cont.indexOf("") != null cont.remove(cont.indexOf("")) end while cont.push(ip+" "+lib+"#"+v) ips.set_content(cont.join(char(10))) continue end if continue end if ports = router.used_ports rports = [] for port in ports serv = [port.port_number] serv = serv + router.port_info(port).split(" ") rports.push(serv) end for for port in rports ipCount = ipCount + 1 // Increment the IP address count correctly if not ver then if port[1] == lib then // Check if the port's library matches the chosen library print(ip+" "+port[1]+" "+port[-1]+" > "+current_path+"/ips") print("Time since last found "+(time - st)) st=time cont=ips.get_content.split("\n") while cont.indexOf("") != null cont.remove(cont.indexOf("")) end while cont.push(ip+" "+port[1]+"#"+port[-1]) ips.set_content(cont.join(char(10))) end if continue end if if port[1] == lib and port[-1] == ver then print(ip+" "+port[1]+" "+port[-1]+" > "+current_path+"/ips") print("Time since last found "+(time - st)) st=time cont=ips.get_content.split("\n") while cont.indexOf("") != null cont.remove(cont.indexOf("")) end while cont.push(ip+" "+port[1]+"#"+port[-1]) ips.set_content(cont.join(char(10))) end if end for print("<color=green>Scanned </color>" + ipCount + "<color=green> IP's for the library choosen.</color>") end while end function menu = function() print("[Libraries]") print("1: ssh") print("2: repository") print("3: chat") print("4: http") print("5: ftp") print("6: rshell") print("7: router") return user_input("Enter the number corresponding to the library: ") end function choice = menu() // Call the menu function and store the choice lib = "" if choice == "1" then lib = "ssh" else if choice == "2" then lib = "repository" else if choice == "3" then lib = "chat" else if choice == "4" then lib = "http" else if choice == "5" then lib = "ftp" else if choice == "6" then lib = "rshell" else if choice == "7" then lib = "router" else exit("[lib] (version)\nInvalid choice. Exiting...") end if if lib == "repository" then lib = "repo" end if if choice != "7" then ver = user_input("Enter the library version (press Enter for no version): ") end if getRandomIp = function() //1-223.0-255.0-255.0-255 octets = [] for i in range(0, 3) if i == 0 then octets.push(ceil(rnd * 223)) else octets.push(floor(rnd * 256)) end if end for return octets.join(".") end function st = time ipCount = 0 print("Starting scanning loop...") // Add a debug print // Call the scanLibrary function scanLibrary(lib, ver) // After each scan, ask the user if they want to rescan, return to the menu, or exit rescanMenu = user_input("Options:\n1: Rescan same library\n2: Return to menu\n3: Exit\nEnter your choice: ") if rescanMenu == "2" then // Return to the menu (you can implement the menu logic here) else if rescanMenu == "3" then // Exit the program exit("Exiting...") end if