실습환경 : 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 |
---|