网络扫描失败

时间:2013-06-06 17:16:04

标签: networking python-2.7

我尝试在家中扫描网络上的可用端口。但是我遇到了一些问题和错误。有人能告诉我我的剧本会发生什么事吗

这是我的剧本

#!/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)

这是我的错误

检查localhost上的端口1 尝试连接到端口1上的localhost。 连接到端口1上的localhost失败,并显示以下错误:[Errno 10061]无法建立连接,因为目标计算机主动拒绝它 scan_server返回False 检查localhost上的端口2

尝试在端口2上连接到localhost。 连接到端口2上的localhost失败,并显示以下错误:[Errno 10061]无法建立连接,因为目标计算机主动拒绝它 scan_server返回False 检查localhost上的端口3

尝试连接到端口3上的localhost。 在端口3上连接到localhost失败,出现以下错误:[Errno 10061]无法建立连接,因为目标计算机主动拒绝它 scan_server返回False 检查localhost上的端口4

尝试在端口4上连接到localhost。 连接到端口4上的localhost失败,出现以下错误:[Errno 10061]无法建立连接,因为目标计算机主动拒绝它 scan_server返回False 检查localhost上的端口5

尝试在端口5上连接到localhost。 连接到端口5上的localhost失败,出现以下错误:[Errno 10061]无法建立连接,因为目标计算机主动拒绝它 scan_server返回False 检查localhost上的端口6

尝试在端口6上连接到localhost。

1 个答案:

答案 0 :(得分:5)

没有错误。您的本地计算机(您正在扫描的计算机)没有监听这些端口的任何内容,因此拒绝连接。

我不确定'可用端口'是什么意思。操作系统将拒绝任何没有绑定的端口上的连接。在类似Linux的操作系统上,有一个名为bind的系统调用,它将程序注册为打算侦听该端口。您机器上的绝大多数端口都将“可用”,因为没有任何东西与它们绑定。

这是a reference of commonly used ports