前段时间写了个端口扫描的python脚本,发现现在忘记的差不多了,赶紧记录下来吧,虽然是并发的,但是在实际的使用场景中,如果扫描的机器过多,依旧有性能上的问题,好在我需要扫描的机子就那么几台.脚本写的生烂.../usr/bin/env python #-*- coding:utf-8 -*- import nmap import threading import smtplib import string from...port]['state'],nm[ip]['tcp'][port]['name']) result = result + portinfo return result #定义多线程扫描...__ == "__main__": main() sender = 'lidefu@lingyuwangluo.com' receiver = MailList #邮件主题,如:xxx端口扫描... subject = 'xxx端口扫描' smtpserver = 'smtp.xxxx.com' smtpuser = 'xxxx@xxxx.com' smtppass = 'xxxx
Python可以使用socket模块来实现端口扫描。...下面是一个简单的端口扫描示例代码: import socket # 要扫描的主机IP host = "192.168.1.1" # 要扫描的端口范围 start_port = 1 end_port...,我们首先指定要扫描的主机IP,以及要扫描的端口范围。...最后,我们根据返回值来判断端口是否开放。 需要注意的是,使用Python进行端口扫描时需要小心,不要进行未经授权的端口扫描,否则可能会违反法律法规或者引起网络安全问题。...另外,实际应用中,一些防火墙和安全策略可能会阻止端口扫描,所以在进行端口扫描前,需要获取管理员或网络安全人员的授权,并遵守相应的安全规定。
python socket 端口扫描 #!...import time import socket socket_timeout = 0.1 def tcp_scan(ip,port): '''利用socket 发送tcp包,探测端口存活率...>>> ''' try: s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #基于简单的TCP扫描
第一版:只支持以逗号分隔的端口,不支持端口范围 Firstly: sudo apt-get install nmap Secondly:pip install python-nmap.../usr/bin/env python import nmap import optparse def nmapScan(tgtHost,tgtPort): nmScan = nmap.PortScanner.../scan_network.py -H 192.168.1.1 -p 22,23 第二版:支持以逗号分割及以-分割的端口范围 #!.../usr/bin/env python import nmap import optparse def nmapScan(tgtHost,tgtPort): nmScan = nmap.PortScanner
利用python多线程的性质,写了一个扫描目标主机开放端口的程序 程序功能: 输入目标ip地址,程序执行扫描,讲扫描到的端口,存入test.tst文件 附上代码: import telnetlib...: server = telnetlib.Telnet() try: server.open(ip, port) #print('{0} 的 {1} 端口是打开的...\n'.format(ip, port)) except Exception as err: pass # print('{0} 的 {1} 端口是没有打开的...server.close() if __name__ == '__main__': ipadress = input("输入目标ip:") host = ipadress print('端口扫描开始...)) t.start() everything.append(t) for t in everything: t.join() print('扫描完成
如果要计算扫描了多久的话,可以导入time模块,然后 程序开始运行的时间 减去 程序结束运行的时间 最后输出时间的差。...线程对全局变量openNum操作完成后,需要释放所,其他线程才可以继续修改全局变量openNum s.close() except: #如果端口没开...pass def main(): setdefaulttimeout(1) ports = [20, 21, 22, 23, 80, 111, 3306] #定义要扫描的端口,也可以在
首先我们供给一台主机要进行的步骤就是对其主机端口的扫描,查看其中开放的端口。 我们首先创建一个TCP的全连接的扫描器。我们使用socket来创建连接器。...扫描端口开放 #测试当前主机和端口是否开放,直接使用socket连接 def connScan(host,port): try: connSkt = socket.socket(...tgtPort)) connScan(tgtHost, int(tgtPort)) portScan('www.baidu.com', [80,443,3389,1433,23,445]) 对百度的端口进行扫描...因为每一个socket都有时间延迟,每一个socket扫描都将会耗时几秒钟,虽 然看起来无足轻重,但是如果我们扫描多个端口和主机延迟时间将迅速增大。...理想情况下,我们希望这些socket按顺序扫描。引入Python线程。线程提供 了一种同时执行的方式。在我们的扫描中利用线程,只需将 portScan()函数的迭代改一下。
1.环境:Centos7+python3.6 2.nmap介绍:python nmap是一个python库,它有助于使用nmap端口扫描器。...它可以方便地操作nmap扫描结果,将是一个完美的用于希望自动扫描任务的系统管理员的工具和报告。...python-nmap-0.4.1.tar.gz #安装 cd python-nmap-0.4.1 python setup.py install 5.端口扫描代码示例 #!...#输入的端口号 try: nm = nmap.PortScanner() #创建端口扫描对象 except nmap.PortScannerError: print('Nmap...------------------') print('协议:%s'%(proto)) lport = nm[host][proto].keys() #获取协议的所有扫描端口
端口扫描器 参考:https://www.imooc.com/article/286803 常见的端口扫描类型 1. TCP 连接扫描 2....UDP 扫描 1、TCP连接扫描 若客户端想要连接服务器80端口时,会先发送一个带有 SYN 标识和端口号的 TCP 数据包给服务器(本例中为80端口)。...FIN 扫描会向服务器发送带有 FIN 标识和端口号的 TCP 数据包。...它的结果只能说明端口是否被过滤。再次强调,ACK 扫描不能发现端口是否处于开启或关闭状态。 客户端会发送一个带有 ACK 标识和端口号的数据包给服务器。...TCP 窗口扫描的流程同 ACK 扫描类似,同样是客户端向服务器发送一个带有 ACK 标识和端口号的 TCP 数据包,但是这种扫描能够用于发现目标服务器端口的状态。
import optparse import socket from socket import * from threading import * s...
端口扫描,就是逐个对一段端口或指定的端口进行扫描。通过扫描结果可以知道一台计算机上都提供了哪些服务,Python中使用Socket即可实现对特定端口的探测,以及对C段的扫描。...扫描目标主机Banner: 为了让函数获得完整的屏幕控制权,这里使用一个信号量,它能够阻止其他线程运行而避免出现多线程同时输出造成的乱码和失序等情况....a = "192.168.1.{}".format(i) t = Thread(target=ScanBanner,args=(a,80)) t.start() 针对域名C段扫描...C段地址") parser.add_argument("-p", "--port", dest="port", help="设置要扫描的端口列表") args = parser.parse_args...for t in thread: t.join() else: parser.print_help() 例如需要探测特定80,443,445,135,139端口
我们的韩国bss系统上线之后,要求对主机的端口、资源使用进行统计,端口每个主机去看,太费劲了,所以,就写了这样一个小程序,不是很完美但是,可以用啊!哈哈哈,别喷,本人是个菜鸟 #!.../usr/bin/python # -*- coding:utf-8 -*- import socket import sys #connector,使用socket模块,设定超时时间为0.1【内网环境下... "name": "***-1-30", "ip": "xxx.xxx.xxx..30" } ] } #对列表中所有server的所有端口进行遍历扫描...,并将打开的端口输出到终端 for server in server_list['server-list']: for port in range(1,65535): state
Python多线程端口扫描工具 昨晚今晚写了两晚,总算把Py Port Scanner 写完了,姑且称之为0.1版本,算是一个Python多线程端口扫描工具。
测试端口: telnet 192.168.1.1 22 扫描端口: for i in {1..65536}; do (echo 'q')|telnet -e 'q' 127.0.0.1 ${i} >/dev...&>/dev/null > /dev/tcp/HOST/PORT && echo OK 例子: echo &>/dev/null > /dev/tcp/127.0.0.1/22 && echo OK 扫描端口...BatchMode=yes -o StrictHostKeyChecking=yes 2>&1 ) | grep refused >/dev/null 2>&1 || echo " is open" 扫描端口...HOST 例子: nmap 127.0.0.1 适用范围: 必须要有nmap才行, 这比telnet还少.. 5.其它 当上面的条件都不满足的时候,就得自己编程了.服务器上基本上都有 C编译器或者python...扫描端口排行: 按适用范围排行: 程序 > ssh > bash > nmap > telnet 按方便程度排行: bash > nmap > telnet > ssh > 编程 按流行度排行: nmap
——巴尔扎克 分享一个端口扫描的小技巧 nc -z -v 127.0.0.1 8000-9000 2>&1 | grep succeeded 例如这里扫描到本机8000到9000的端口中哪些成功扫到...这里nc代表netcat -z表示扫描模式不发送数据只检查链接 -v表示列出详情 127.0.0.1不谈 8000-9000是端口范围 2>&1也是在nohup老命令,表示将标准错误(2)输出到标准输出...(1) | grep succeeded筛选出成功连接的端口
原本打算寒假的时候好好学习一下python,毕竟搞安全可离不开Python,正好目前学习的课程开设到了Python方面,就把笔记分享一下,此文也已经同步到我的博客。...1、Connect()扫描 此扫描试图与每一个TCP端口进行“三次握手”通信。如果能够成功建立接连,则证明端口开发,否则为关闭。...在前两种扫描中,有响应数据包的表示端口开放,但在NUll扫描中,收到响应数据包表示端口关闭。反向扫描比前两种隐蔽性高些,当精确度也相对低一些。 用途:判断是否为Windows系统还是Linux。...此类扫描同样不能准确判断windows系统上端口开发情况。 端口开放:发送FIN,没有响应 端口关闭:1、发送FIN 2、回复RST 5、ACK扫描 扫描主机向目标主机发送ACK数据包。...二、Python 代码实现 1、利用Python的Socket包中的connect方法,直接对目标IP和端口进行连接并且尝试返回结果,而无需自己构建SYN包。
Python 扫描IP段 指定端口是否开放 TCP21.py #!.../usr/local/bin/python -- coding: UTF-8 -- # # qq:316118740 BLOG:http://hi.baidu.com/alalmn Python 扫描IP...#读取INI list_ip=gen_ip(ip2num(ini.IP1),ip2num(ini.IP2)) I1 = 0 #得到list的第一个元素 print u"开始扫描.../usr/local/bin/python -- coding: UTF-8 -- # qq:316118740 BLOG:http://hi.baidu.com/alalmn Python 操作ini...文件 刚学写的不好请大家见谅 # IP1="" #扫描IP IP2="" #当前已经扫到的IP INITXT="IP.ini" #INI文件名字 import ConfigParser def
/usr/bin/python3 -- coding: utf-8 -- from socket import * def portScanner(host,port): try:
在本教程中,我们将演示如何通过构建基本端口扫描程序与Python建立网络连接。我们将要做的是基于ip / port组合反复建立网络套接字连接。...要制作简单的端口扫描程序,我们将使用创建套接字连接的代码片段替换print语句。...现在让我们结合所有这些概念并制作一个快速的循环端口扫描程序: >>> >>> for port in range(20,25): ... try: ......创建端口扫描程序的另一种方法是定义一个您希望用数组扫描的端口列表,然后遍历该数组: >>> >>> ports = [22, 445, 80, 443, 3389] >>> for port in ports...对于最终端口扫描程序,您可能希望将print语句修改为仅打印已打开的端口。 在一天结束时,您会发现Nmap仍然是端口扫描的更好选择,但我们将在后面的文章中构建这些概念,以完成一些更实际的用例。
之前项目上线前,领导要求让写一个脚本用来判断端口的占用情况。由于现在python3使用也比较多,基于python2修改了一下,做了个python3版本的,现在做一下总结。...一、python脚本实现扫描端口: pthon2下代码如下(当时的环境): #!...(3) #设置默认超时时间 def socket_port(ip, port): """ 输入IP和端口号,扫描判断端口是否占用 """ try: if port >=...: print u'端口扫描异常' def ip_scan(ip): """ 输入IP,扫描IP的0-65534端口情况 """ try: print u'开始扫描 %s' ... (u'端口扫描异常') def ip_scan(ip): """ 输入IP,扫描IP的0-65534端口情况 """ try: print (u'开始扫描 %s' % ip) start_time
领取专属 10元无门槛券
手把手带您无忧上云