我尝试在家中扫描网络上的可用端口。但是我遇到了一些问题和错误。有人能告诉我我的剧本会发生什么事吗
这是我的剧本
#!/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。
答案 0 :(得分:5)
没有错误。您的本地计算机(您正在扫描的计算机)没有监听这些端口的任何内容,因此拒绝连接。
我不确定'可用端口'是什么意思。操作系统将拒绝任何没有绑定的端口上的连接。在类似Linux的操作系统上,有一个名为bind
的系统调用,它将程序注册为打算侦听该端口。您机器上的绝大多数端口都将“可用”,因为没有任何东西与它们绑定。