Python开发端口扫描器

首先是最常用的端口扫描器:

虽说有nmap等强大的工具,不过如果由于条件限制无法安装Nmap呢?

我这个脚本写的比较简单,默认扫描1-65535全部的端口

实际的话,可以根据需要自己修改脚本来实现定制化扫描

# -*- coding:utf-8 -*-
__author__ = "Yiqing"

import socket
import time
import thread
import optparse
import re

socket.setdefaulttimeout(3)

def port_scan(ip, port):
    """
    对某一个IP的某一个端口进行扫描
    :param ip: 目标
    :param port: 端口
    :return: None
    """
    try:
        if port > 65535 or port < 1:
            print "[!] Port Scan End"
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        result = s.connect_ex((ip, port))
        if int(result) == 0:
            lock.acquire()
            print "[-] IP:" + str(ip) + " Port:" + str(port) + " Open"
            lock.release()
        s.close()
    except Exception:
        pass

def ip_scan(ip):
    """
    对IP的所有端口扫描
    :param ip:目标
    :return: None
    """
    try:
        print "[*] Start Port Scan : " + ip
        start_time = time.time()
        for port in range(1, 65535):
            thread.start_new_thread(port_scan, (ip, int(port)))
        print "[+] Port Scan Complete! Time:" + str(time.time() - start_time)
    except Exception:
        pass

def main():
    """
    输入参数处理
    :return: None
    """
    print "Welcome to PortScanner"
    print "Author: %s  Version:1.0" % __author__
    parse = optparse.OptionParser(
        ‘python %prog -H <target host>‘)
    parse.add_option(‘-H‘, dest="target_host", type="string", help=‘specify the host‘)
    (options, args) = parse.parse_args()
    target_host = options.target_host
    if target_host is not None and re.match(r‘\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}‘, target_host):
        ip_scan(target_host)
    else:
        exit()

if __name__ == ‘__main__‘:
    lock = thread.allocate_lock()
    main()
    time.sleep(3)
    raw_input("Press Enter to Exit")

使用:

原文地址:https://www.cnblogs.com/xuyiqing/p/10312883.html

时间: 2024-10-12 23:23:00

Python开发端口扫描器的相关文章

Python脚本--端口扫描器

一个用python写的简单的端口扫描器,python环境为 3.7.0,windows系统 扫描给定主机是否开放了指定的端口TCP连接扫描是利用TCP的三次握手来确定主机的端口是否开放.确定主机端口开放之后,给端口发送消息,接收端口返回的消息,然后判断该端口运行的服务.使用时,-H?参数可以提供主机的域名或者ip地址,-p/-P?写要扫描的端口,多个端口用逗号分隔 ''' @Author:yw 参考书籍:<python绝技:运用python成为顶级***> ''' import optpars

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编写简单的端口扫描器的实例分享【转】

转自 使用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实现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开发【前端】:jQuery

jQuery简介 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是"write Less,Do More",即倡导写更少的代码,做更多的事情.它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画设计和Ajax交互. jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口:

py2.7+pyqt4开发端口检测工具

使用工具:python2.7,pyqt4,pyinstaller,pywin32 先贴代码 1 import sys 2 from PyQt4 import QtGui,QtCore 3 4 import threading 5 import thread 6 import os 7 import re 8 import urllib 9 import socket 10 import time 11 12 13 global maxNum 14 global cnt 15 global sig

Python开发【第二十篇】:缓存

Python开发[第二十篇]:缓存redis&Memcache 点击这里 Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可

Python开发【第六篇】:模块

模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块. 如:os 是系统相关的模块:file是文件操作相关的模块 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.定义模块 情景一: 情景二: 情景三: 2.导入模块 Python之所以应用越来越广泛,

Vagrant 部署python开发环境

Vagrant简介 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境.它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境. 在Windows下,也可以方便地使用Linux环境开发程序 官方文档 http://docs.vagrantup.com/v2/getting-started/index.html box https://vagrantcloud.com/discover/featured 准备工作 下载安装 VirtualBox