2013-06-06 2 views
0

내 네트워크에서 사용 가능한 포트를 집에서 스캔하려고합니다. 하지만 몇 가지 문제와 오류가 있습니다. 사람이 문제가 내 스크립트 여기네트워크 스캔에 실패했습니다.

에 무슨 일이 일어나고 있는지 말해 줄 수 것은 여기 내 스크립트

#!/usr/bin/env python 

import socket, sys 
from optparse import OptionParser 

def scan_server(address, port): 
s = socket.socket() 
print "Attempting to connect to %s on port %s." %(address, port) 
try: 
    s.connect((address, port)) 
    print "Connected to server %s on port %s." %(address, port) 
    return True 
except socket.error, e: 
    print "Connecting to %s on port %s failed with the following error: %s" %(address, 
    port, e) 
    return False 

if __name__ == '__main__': 
parser = OptionParser() 
parser.add_option("-a", "--address", dest="address", default="localhost",  
parser.add_option("-p", "--port", dest="port", help="PORT for server", metavar="PORT") 
(options, args) = parser.parse_args() 
if options.port == 'all': 
    print 'checking all ports...' 
for x in range(1,65536): 
    print 'checking port %s on %s' %(x, options.address) 
    check = scan_server(options.address, x) 
    print 'scan_server returned %s' %(check) 
else: 
    options.port = int(options.port) 
    print 'options: %s, args: %s' %(options, args) 
    check = scan_server(options.address, options.port) 
    print 'scan_server returned %s' %(check) 
    Ssys.exit(not check) 

입니다 그리고 것은 연결을 시도 로컬 호스트 포트 1을 확인 내 오류

입니다 포트 1의 로컬 호스트에 연결하십시오. 다음 오류로 인해 포트 1의 로컬 호스트에 연결하지 못했습니다. [Errno 10061] 대상 시스템에서 적극적으로 거부했습니다. 대상 컴퓨터가 적극적으로 거부했기 때문에 없음 연결을 만들 수 있습니다 [errno를 10061] : scan_server은 거짓 포트 2에 localhost에 연결 2. 다음과 같은 오류와 함께 실패 포트에서 로컬 호스트에 연결을 시도

로컬 호스트 포트 2를 확인 반환 이 scan_server이 False 포트 3에 localhost로 연결 3. 다음과 같은 오류와 함께 실패 포트에서 로컬 호스트에 연결을 시도

로컬 호스트의 포트 3을 확인 반환 : [errno는 10061] 연결하지 못했습니다 때문에 대상 시스템 적극적으로 거부했습니다. scan_server returned False 포트 4에 localhost에 연결 4. 다음과 같은 오류와 함께 실패 포트에서 로컬 호스트에 연결을 시도 로컬 호스트에

을 포트 4 확인 : 대상 컴퓨터가 적극적 scan_server를 거부했기 때문에 [errno를 10061] 연결하지 못했습니다 포트 5 로컬 호스트에 연결 5. 다음과 같은 오류와 함께 실패 포트에서 로컬 호스트에 연결을 시도 로컬 호스트에

을 포트 (5)를 확인 거짓 반환 대상 컴퓨터가 적극적으로 거부했기 때문에 [errno를 10061] 연결하지 못했습니다 scan_server가 반환 됨 False 로컬 호스트에서 포트 6 확인

포트 6의 로컬 호스트에 연결하려고 시도했습니다.

답변

5

오류가 없습니다. 로컬 컴퓨터 (스캔중인 포트)는 해당 포트에서 수신 대기중인 것이 없으므로 연결이 거부됩니다.

'사용 가능한 포트'란 무엇을 의미하는지 모르겠습니다. 운영 체제는 이없는 포트에서 연결을 거부합니다 (). 리눅스와 같은 운영 체제에서는 프로그램을 해당 포트에서 수신 대기하도록 등록하는 bind이라는 시스템 호출이 있습니다. 귀하의 컴퓨터에있는 대다수의 포트는 아무것도 사용할 수 없으므로 '사용 가능'합니다.

여기에 a reference of commonly used ports입니다.

+0

실수로 죄송합니다. 나는 연결하려는 시도가 실패했음을 의미합니다. 실제로 내 네트워크에 연결하는 모든 호스트에서 실행되는 프로토콜을 찾으려고합니다. localhost 용 포트를 검색하는 스크립트를 찾았습니다. 그러나 나는 호스트의 모든 다른 항구 를 얻는 방법을 알지 않았다. http : // codepad.org/HpzcVyet 내 로컬 호스트에서 포트를 검색하기위한 내 스크립트입니다. – topfer19

+0

왜 내 대답에서 그 실패가 발생하는지 설명했습니다. 그러나 그게 당신이하려는 일이라면 직접 작성하는 대신 [nmap] (http://nmap.org)을 사용하십시오. – Chris

관련 문제