본문 바로가기

Python

[python] 포트스캐너 만들기

실습환경 : python 3.4.3


for문에 range 범위는 시작 포트번호와 마지막 포트번호 입니다. 

(아래 화면은 134번 포트부터 140번 포트까지)

※ recv(buffer_size) : 해당 포트의 서버스로 부터 buffer_size 만큼의 response를 받아옵니다.



[실행결과]


포트가 열려 있고, 서비스가 구동 중이라면 아래와 같은 recv() 결과가 나옵니다.



포트는 열려있지만 서비스가 구동 중이 아니라면 아래와 같은 recv() 결과가 나옵니다.

그래서 저 같은 경우에는 b''가 나올경우 "No Service!"가 출력되게 하였습니다.



만약 포트가 닫혀 있게 되면 s.connect() 실행 후 아래와 같은 Connection Refused 에러 메시지를 보실 수 있습니다.



만약 포트가 열려있는 것을 확인하여 s.recv()를 통하여 response를 받은 후 close() 없이 s.connect()를 실행면 아래와 같은 메시지를 확인 할 수 있습니다.



그렇기 때문에, 실습 결과 비효율적이지만 loop 처음에 socket()을 생성하고 마지막에 close() 하는  장 좋은 것 같습니다.



[참고]

www.primalsecurity.net


'Python' 카테고리의 다른 글

[python] Fuzzer 만들기  (0) 2015.09.25