Python3多线程版TCP端口扫描器
作者:刺青LOVELESS 发布时间:2021-07-13 21:25:45
标签:python3,TCP,端口扫描器
本文实例为大家分享了Python3多线程版TCP端口扫描器的具体代码,供大家参考,具体内容如下
使用命令
python BannerDemo.py -H 192.168.200.101 -p 22,3306
代码如下
import optparse
import socket
from socket import *
from threading import *
screenLock = Semaphore(value=1)
def connScan(tgtHost,tgtPort):
try:
connSkt = socket(AF_INET,SOCK_STREAM)
connSkt.connect((tgtHost,tgtPort))
connSkt.send('ViolentPython\r\n'.encode('utf-8'))
result = connSkt.recv(1024)
screenLock.acquire()
print("[+] %d/tcp open"%tgtPort)
print("[+]"+str(result))
except Exception as e:
screenLock.acquire()
print(e)
finally:
screenLock.release()
connSkt.close()
def portScan(tgtHost,tgtPorts):
try:
tgtIp = gethostbyname(tgtHost)
except:
print("[-] Cannot reslove '%s' : Unknown host" % tgtHost)
return
try:
tgtName = gethostbyaddr(tgtIp)
print("\n [+] Scan Result for: " + tgtName[0])
except:
print("\n [+] Scan Result for: " + tgtIp)
setdefaulttimeout(1)
for tgtPort in tgtPorts:
print("Scanning port "+ tgtPort)
t = Thread(target=connScan,args=(tgtHost,int(tgtPort)))
t.start()
def main():
parser = optparse.OptionParser("usage%prog -H <target host> -p <target port>")
parser.add_option('-H',dest='tgtHost',type='string',help='specify target host')
parser.add_option('-p',dest='tgtPort',type='string',help='specify target port[s] separated by comma')
options,args = parser.parse_args()
tgtHost = options.tgtHost
tgtPorts = str(options.tgtPort).split(',')
if(tgtHost == None or tgtPorts[0] == None):
print("[-] You must specify a target host and port[s]")
exit(0)
portScan(tgtHost,tgtPorts)
if __name__ == '__main__':
main()
来源:https://blog.csdn.net/ciqingloveless/article/details/84994330


猜你喜欢
- 如下所示:import jsonf = open("index.html", "wb")json.d
- KNN算法算是最简单的机器学习算法之一了,这个算法最大的特点是没有训练过程,是一种懒惰学习,这种结构也可以在tensorflow实现。KNN
- 废话不多说,直接上代码吧!/** * 函数防抖 (只执行最后一次点击) * @param fn * @param delay * @retu
- 组合数据类型分类组合数据类型分为三类,第一类是集合类型,第二类是序列类型,第三类是映射类型集合类型集合类型是一个元素集合,元素之间没有排列顺
- 目录项目引入flask-sqlalchemyORM简介及模型定义表关系类型及编码实现一对多关系(多对一关系)一对一关系多对多关系数据库基本操
- 摘要数据分析与建模的时候大部分时间在数据准备上,包括对数据的加载、清理、转换以及重塑。pandas提供了一组高级的、灵活的、高效的核心函数,
- output输出打包后的代码,配置如何输出和输出位置在webpack.config中output包含以下属性:path:代码打包后要输出的位
- CSS 文件的大小和所引起的 HTTP 的请求数是 CSS 性能的最关键因素回流(reflow)和渲染时间(非常!)没那么重要副本(dupl
- 概述通过自定义网络, 我们可以自己创建网络并和现有的网络串联起来, 从而实现各种各样的网络结构.SequentialSequential 是
- 1.用python调用python脚本#!/usr/local/bin/python3.7import timeimport os coun
- 使用Django的ORM操作的时候,想要获取本条,上一条,下一条。初步的想法是写3个ORM,3个ORM如下:本条:models.Obj.ob
- (1)更有意义的搜索 数据可被XML唯一的标识。没有XML,搜索软件必须了解每个数据库是如何构建的。这实际上是不可能的,因为每个数据库描述数
- 这几天正在追剧,原名《大秦帝国之天下》的《大秦赋》,看着看着又想把前几部刷一遍了,但第一部《裂变》自己没有高清资源,搜了一波发现yout
- 一、前言介绍xlrd:可以对xlsx、xls、xlsm文件进行读操作且效率高。xlwt:主要对xls文件进行写操作且效率高,但是不能执行xl
- 本文实例讲述了vue多次循环操作。分享给大家供大家参考,具体如下:需求:有以下一个数组,想将其对象里的信息展示出来,而且还要把对象下面的数组
- 最简单的实现一个队列至少满足2个方法,put和get.借助最小堆来实现.这里按"值越大优先级越高"的顺序.#coding
- 0. 准备相关表来进行接下来的测试相关建表语句请看:https://github.com/YangBaohust/my_sqluser1表,
- 如题,我们直接使用numpy#!D:/workplace/python# -*- coding: utf-8 -*-# @File : nu
- If order does not matter, you can use"".join(set(foo))set()
- Fibonacci斐波那契数列,很简单,就是一个递归嘛,学任何编程语言可能都会做一下这个。最近在玩Python,在粗略的看了一下Learni