Spaces:
Sleeping
Sleeping
from typing import Optional | |
import nmap | |
nm = nmap.PortScanner() | |
class NetworkScanner(): | |
def scanner(self, AIModels, ip: Optional[str], profile: int, akey: Optional[str], bkey: Optional[str], lkey, lendpoint, AI: str) -> str: | |
profile_arguments = { | |
1: '-Pn -sV -T4 -O -F', | |
2: '-Pn -T4 -A -v', | |
3: '-Pn -sS -sU -T4 -A -v', | |
4: '-Pn -p- -T4 -A -v', | |
5: '-Pn -sS -sU -T4 -A -PE -PP -PY -g 53 --script=vuln', | |
6: '-Pn -sV -p- -A', | |
7: '-Pn -sS -sV -O -T4 -A', | |
8: '-Pn -sC', | |
9: '-Pn -p 1-65535 -T4 -A -v', | |
10: '-Pn -sU -T4', | |
11: '-Pn -sV --top-ports 100', | |
12: '-Pn -sS -sV -T4 --script=default,discovery,vuln', | |
13: '-Pn -F' | |
} | |
# The scanner with GPT Implemented | |
nm.scan('{}'.format(ip), arguments='{}'.format(profile_arguments.get(profile))) | |
json_data = nm.analyse_nmap_xml_scan() | |
analyze = json_data["scan"] | |
match AI: | |
case 'openai': | |
try: | |
if akey is not None: | |
pass | |
else: | |
raise ValueError("KeyNotFound: Key Not Provided") | |
response = AIModels.GPT_AI(akey, analyze) | |
except KeyboardInterrupt: | |
print("Bye") | |
quit() | |
case 'bard': | |
try: | |
if bkey is not None: | |
pass | |
else: | |
raise ValueError("KeyNotFound: Key Not Provided") | |
response = AIModels.BardAI(bkey, analyze) | |
except KeyboardInterrupt: | |
print("Bye") | |
quit() | |
case 'llama': | |
try: | |
response = AIModels.Llama_AI(analyze, "local", lkey, lendpoint) | |
except KeyboardInterrupt: | |
print("Bye") | |
quit() | |
case 'llama-api': | |
try: | |
response = AIModels.Llama_AI(analyze, "runpod", lkey, lendpoint) | |
except KeyboardInterrupt: | |
print("Bye") | |
quit() | |
self.response = response | |
text = str(self.response) | |
return text | |