Python脚本--端口扫描器

一个用python写的简单的端口扫描器,python环境为 3.7.0,windows系统

扫描给定主机是否开放了指定的端口
TCP连接扫描是利用TCP的三次握手来确定主机的端口是否开放。确定主机端口开放之后,给端口发送消息,接收端口返回的消息,然后判断该端口运行的服务。
使用时,-H?参数可以提供主机的域名或者ip地址,-p/-P?写要扫描的端口,多个端口用逗号分隔

‘‘‘
@Author:yw
参考书籍:《python绝技:运用python成为顶级***》
‘‘‘
import optparse
from socket import *
import threading
threadlock = threading.Lock() #实例化threadlock对象

def Conn_scan(Host, Port):
    try:
        conn = socket(AF_INET,SOCK_STREAM)
        conn.connect((Host, Port))
        #conn.send(‘ywboy‘.encode(‘utf-8‘)) #发送测试
        #results = conn.recv(100)           #接收主机返回的信息
        threadlock.acquire()                 #加锁
        print("[+]%d/tcp Open" % Port)
        #print(‘[+]‘+results.decode(‘utf-8‘))
        conn.close()
    except Exception as e:
        threadlock.acquire()                 #释放锁
        print(‘[-]%d/Tcp Closed‘ % Port)
    finally:
        threadlock.release()
        conn.close()
def Port_scan(Host, Ports):
    try:
        IP = gethostbyname(Host)        ##获得对应主机的ip地址
    except:
        print("[-] Cannot resolve ‘%s‘:Unknow host" % Host)
        return
    try:
        Name = gethostbyaddr(Host)          ##获得对应主机的信息,返回主机名、主机别名列表、主机IP地址列表
        print("\n[+] Scan result for:"+Name[0])
    except:
        print("\n[+] Scan Results for:"+IP)
    setdefaulttimeout(1)
    for Port in Ports:
        print("Scan port:"+Port)
        Conn_scan(Host, int(Port))
def main():
    usage = "usage %prog -H <target Host> -p/-P <target ports>"
    parse = optparse.OptionParser(usage)
    parse.add_option(‘-H‘, dest=‘Host‘, type=‘string‘, help=‘target Host‘)
    parse.add_option(‘-p‘,‘-P‘, dest=‘Ports‘, type=‘string‘, help=‘SCan Port‘)
    (options, args) = parse.parse_args()
    Host = options.Host
    Ports = str(options.Ports).split(‘,‘)
    if (Host==None)|(Ports==None):
        print(parse.usage)
        exit(0)
    Port_scan(Host,Ports)
if __name__ == ‘__main__‘:
    main()

上述代码,因为我只是做了端口扫描,所以注释掉的判断端口扫描服务的代码

运行结果:

原文地址:https://blog.51cto.com/14113984/2438006

时间: 2024-07-31 07:12:52

Python脚本--端口扫描器的相关文章

Python开发端口扫描器

首先是最常用的端口扫描器: 虽说有nmap等强大的工具,不过如果由于条件限制无法安装Nmap呢? 我这个脚本写的比较简单,默认扫描1-65535全部的端口 实际的话,可以根据需要自己修改脚本来实现定制化扫描 # -*- coding:utf-8 -*- __author__ = "Yiqing" import socket import time import thread import optparse import re socket.setdefaulttimeout(3) de

使用Python编写简单的端口扫描器的实例分享【转】

转自 使用Python编写简单的端口扫描器的实例分享_python_脚本之家 http://www.jb51.net/article/76630.htm -*- coding:utf8 -*- #!/usr/bin/python # Python: 2.7.8 # Platform: Windows # Authro: wucl # Program: 端口扫描 # History: 2015.6.1 import socket, time, thread socket.setdefaulttim

扫描端口占用情况的python脚本

之前项目上线前,领导要求让写一个脚本用来判断端口的占用情况.由于现在python3使用也比较多,基于python2修改了一下,做了个python3版本的,现在做一下总结. 一.python脚本实现扫描端口: pthon2下代码如下(当时的环境): #!/usr/bin/env python # -*- coding:utf-8 -*- # used for pthon2.*    import socket, time, thread socket.setdefaulttimeout(3) #设

Python 脚本学习笔记(五)集中式病毒扫描,端口扫描以及分段数据库操作

Clam AntiVirus是一个免费而且开放源码的防毒软件,软件与病毒库的更新由开源社区免费发布,目前ClamdAV主要为Linux.Uinux系统提供病毒扫描查杀pyClamad是一个python的第三方模块,可让python直接使用ClamAV病毒扫描守护进程clamd来实现一个高效的病毒检测功能. 一.实现集中式的病毒扫描 1.安装clamavp clamd 服务的相关程序包 yum install clamav clamd clamav-update -y chkconfig clam

python端口扫描器

吃了个火鸡面后感觉到了怀疑人生!!!!!!!!!妈耶,在也不吃了.思路都给辣没了!!! python端口扫描器代码如下: #-*-coding:utf-8 from socket import * import threading import argpars lock=threading.lock() openNUm=0 threads=[] def portScanner(host,port): global openNum try: s=socket(AF_INET,SOCK_STREAM

python实现FTP弱口令扫描器与简单端口扫描器

python实现FTP弱口令扫描器与简单端口扫描器 目录 FTP弱口令扫描器 简单端口扫描器 参考: https://blog.csdn.net/rebelqsp/article/details/22109925 https://www.aliyun.com/jiaocheng/434055.html?spm=5176.100033.2.10.3571581eheCuHX FTP弱口令扫描器 # Ftp匿名扫描器的实现,需要使用FTP这个类 # Ftp这个类实现了Ftp客户端的大多数功能,比如连

将Python脚本文件包装成可执行文件

将Python脚本文件包装成可执行文件,其目的有二: 一则: 不需要依赖Python编译器就可以运行软件 二则: 不想让自己的源码公布出去 常用的工具有: py2exe.cx_freeze等 [工具:py2exe] 安装py2exe 安装该工具很简单: 只需要从官方网站:http://www.py2exe.org/下载与版本对应的安装程序,点击下一步即可完成安装. 安装后,执行import py2exe,不报错则表示安装成功! >>> import py2exe >>>

用 Python 脚本实现对 Linux 服务器的监控

hon 分享到:8 原文出处: 曹江华 目前 Linux 下有一些使用 Python 语言编写的 Linux 系统监控工具 比如 inotify-sync(文件系统安全监控软件).glances(资源监控工具)在实际工作中,Linux 系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的脚本实现对 Linux 服务器的监控. 本文介绍一下使用 Python 脚本实现对 Linux 服务器 CPU 内存 网络的监控脚本的编写. Python 版本说明 Python 是由 Guido va

用python 脚本控制telnet登录交换机

目的:学习用python脚本登录交换机并执行相关操作 环境:windows 7  Python 3.5.3 最初原因是因为工作需要在交换机上查询IP地址的来源端口,不停的跳转查看很麻烦,于是决定写脚本,这里只写关于用Python登录和之后的可用方法. telnet是内置模块,模块名telnetlib. # 定义登录的用户名.密码和登录的设备地址 username = 'abc' password = '123' switch_ip = '1.2.3.4' # 连接 tel_con = telne