Python nmap 스 캔 도구 작성
오늘 우 리 는 python 의 시 뮬 레이 션 으로 간단 한 버 전의 포트 스 캔 도 구 를 실현 합 니 다.주로 socket 모듈 에 사용 되 며,socket 모듈 에 connect()와 connect 를 제공 합 니 다.ex()두 가지 방법,그 중 connectex()방법 은 반환 값 이 있 습 니 다.반환 값 은 int 형식의 숫자 입 니 다.연결 성공 여 부 를 표시 하고 0 은 연결 성공 이 며 다른 숫자 는 이상 을 표시 합 니 다.
def connect(self, address: Union[_Address, bytes]) -> None: ...
def connect_ex(self, address: Union[_Address, bytes]) -> int: ...
제 1 판:
def scan_tools_v1(self):
host = input(' ip :')
port = int(input(' :'))
sk = socket.socket()
sk.settimeout(0.1)
conn_result = sk.connect_ex((host, port))
if conn_result == 0:
print(' {} {} '.format(host, port))
else:
print(' {} {} '.format(host, port))
sk.close()
실행 결과:D:\Software\Python\Python39\python.exe D:/MyScripts/study_srripts/SockerTools/nmap_tools.py
서버 ip 주소 입력:8.129.162.225
스 캔 할 포트 를 입력 하 십시오:8080
서버 8.129.162.225 의 8080 포트 가 열 렸 습 니 다.
단점:
1.한 번 에 포트 하나만 스 캔 할 수 있 습 니 다.
2 판:(여러 인터페이스 스 캔 지원)
def scan_tools_v2(self):
host = input(' ip :')
ports = input(' , 0-65536:')
port_start, port_end = ports.split('-')
count = 0
for port in range(int(port_start), int(port_end)+1):
sk = socket.socket()
sk.settimeout(0.1)
conn_result = sk.connect_ex((host, port))
if conn_result == 0:
print(' {} {} '.format(host, port))
count += 1
sk.close()
if count == 0:
print(f' {host} {ports} ')
출력 결 과 는 열 린 포트 정보 만 출력 합 니 다.입력 한 포트 범위 에 포트 가 하나 도 열 리 지 않 으 면 직접 출력 포트 가 열 리 지 않 습 니 다.요약:
1.이상 은 간단 하고 쉬 운 버 전 일 뿐 입 니 다.서버 의 전체 포트 를 스 캔 하면 시간 이 오래 걸 리 고 그 다음 에 다 중 스 레 드 기술 로 최적화 하 는 것 을 고려 할 수 있 습 니 다.
2.코드 에서 이상 입력 을 검사 하지 않 으 면 최적화 할 수 있 습 니 다.
3.ip 는 문자열 형식 이 고 포트 는 int 형식 이 며 socket 대상 초기 화 는 순환 에 넣 고 시간 초과 설정 을 해 야 합 니 다.그렇지 않 으 면 기본 연결 이 오래 걸 려 서 결 과 를 되 돌려 줍 니 다.\
파 이 썬 이 nmap 스 캔 도 구 를 작성 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 nmap 스 캔 도구 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.