Python端口扫描器 python socket模块实现简易端口扫描器

发布时间:2020-01-23编辑:脚本学堂
本文分享下,使用python的socket模块实现的一个简易的端口扫描器,可以文件中读取要扫描的端口列表,然后进行端口扫描。有需要的朋友参考下吧。

python简易端口扫描器代码,分享给大家。

例子:
 

复制代码 代码示例:
#!/usr/bin/env python
# -*- coding: gb18030 -*-
#site: www.jb200.com
#
from socket import *
import os
import sys
type = sys.getfilesystemencoding()
 
#从文件中读取扫描端口
def getPort(fileroute = "PORTS.txt"):
    list={}
    fileobject = open(fileroute,'r')
    for eachLine in fileobject:
        strs = str(eachLine).split('=')
        if len(strs) > 1 :
            list[int(strs[0])] = strs[1]
    return list
 
#主程序
list = getPort()
keys = list.keys()
keys.sort()
 
HOST = sys.argv[0]
fileobject = open("D:result1.txt",'w')
tcpCliSock = socket(AF_INET,SOCK_STREAM)
result = ''
 
#list_sort = sorted(list, key = lambda d:d[0], reverse = False)
 
for p in keys:    
    try:
        tcpCliSock = socket(AF_INET,SOCK_STREAM)
        tcpCliSock.connect((HOST,int(p)))
        tcpCliSock.close()
        del tcpCliSock
        result = str(p)+" -> " + list[p]
        print result
        fileobject.writelines([result])
    
    except error:
        print str(p) + " -> not open"
        continue
 

代码说明:
以上代码实现,从ports.txt文件中读取端口及作用的列表保存起来,然后用Socket逐个尝试连接,将开启的端口信息保存在D:result1.txt中。