Python 我的端口扫描仪扫描端口的时间太长。这是我的密码,有人能帮我吗?
这是我的密码。有人能给我解释一下如何让我的端口扫描器更快吗?我通过使用“connect.ex()”连接到ip来创建端口扫描程序,也许我应该使用另一个命令Python 我的端口扫描仪扫描端口的时间太长。这是我的密码,有人能帮我吗?,python,Python,这是我的密码。有人能给我解释一下如何让我的端口扫描器更快吗?我通过使用“connect.ex()”连接到ip来创建端口扫描程序,也许我应该使用另一个命令 try: for port in range(1,1000): sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) result = sock.connect_ex((remoteHost,port)) if result ==
try:
for port in range(1,1000):
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
result = sock.connect_ex((remoteHost,port))
if result == 0:
print(colored("[+] Port {}: Open".format(port), 'green'))
sock.close()
因此,快速浏览一下Github,我发现哪些账单本身是 具有模块的闪电般快速的多线程网络扫描框架 通过阅读,我注意到它使用而不是
connect\u ex
。但它绝对会执行多线程处理以提高性能。我倾向于使用现有的解决方案,而不是从头开始构建解决方案,除非这只是为了修补
为了加快示例的速度,您可以使用进行简单的优化
有没有理由不使用现有的端口扫描器,而该扫描器是由已经完成优化其实现工作的人构建的?最简单的更改只是将工作转移到线程中,但是(1)平衡性能和负载是一门艺术,不是一门科学,也不是真正符合规范的答案;(2)编写一个真正高性能的端口扫描器需要一系列接近操作系统的技巧,这些技巧通常需要root,在这里是非常离题的。我知道很多端口扫描器,但我尝试构建一个,因为我正在尝试了解更多。
def scan_port(port):
try:
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
result = sock.connect_ex((remoteHost,port))
if result == 0:
print(colored("[+] Port {}: Open".format(port), 'green'))
sock.close()
except:
pass # you should handle this error
import multiprocessing as mp
p = mp.Pool() # will parallelize to number of CPUs you have
p.map(scan_port, range(1, 1000))