python 다중 스레드 스캐닝 포트 (스토리지 풀)
3501 단어 python
#!/usr/local/python3.6.3/bin/python3.6
# coding = utf-8
import socket
import datetime
import re
from concurrent.futures import ThreadPoolExecutor, wait
DEBUG = False
# ip
def check_ip(ipAddr):
compile_ip = re.compile('^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$')
if compile_ip.match(ipAddr):
return True
else:
return False
#
def portscan(ip, port):
try:
s = socket.socket()
s.settimeout(0.2)
s.connect((ip, port))
openstr = f'[+] {ip} port:{port} open'
print(openstr)
except Exception as e:
if DEBUG is True:
print(ip + str(port) + str(e))
else:
return f'[+] {ip} port:{port} error'
finally:
s.close
# , ThreadPoolExecutor 600
def main():
while True:
ip = input(" ip :")
if check_ip(ip):
start_time = datetime.datetime.now()
executor = ThreadPoolExecutor(max_workers=600)
t = [executor.submit(portscan, ip, n) for n in range(1, 65536)]
if wait(t, return_when='ALL_COMPLETED'):
end_time = datetime.datetime.now()
print(" , :", (end_time - start_time).seconds)
break
if __name__ == '__main__':
main()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.