0x00   使用模块简介

1、optparse模块

选项分析器,可用来生成脚本使用说明文档,基本使用如下;

import optparse

#程序使用说明

usage="%prog -H <target host> -p <target port>"

#实例化optparse对象

parser=optparse.OptionParser(usage)

#添加-H参数相关内容

parser.add_option('-H',dest='host',type='string',help='target host')

#将上述dest赋给options的属性,即options.host,其值表示的是-H参数后的host值

(options,args)=parser.parse_args()

2、socket模块

socket包含一个非常强大的网络库,用于网络编程,基本用法如下:

#创建socket对象

sock=socket(AF_INET,SOCK_STREAM)

#发起连接

sock.connect((host,port))

#发送数据

sock.send()

#接收数据

sock.recv()

#关闭

sock.close()

0x01   完整脚本

#coding:utf-8

import optparse
import socket
from socket import * def main():
usage="%prog -H <target host> -p <target port>"
parser=optparse.OptionParser(usage)
parser.add_option('-H',dest='tgthost',type='string',help='target host')
parser.add_option('-p',dest='tgtport',type='string',help='target port[s]')
(options,args)=parser.parse_args()
port_list=str(options.tgtport).split(',')
for port in port_list:
portScan(options.tgthost,int(port)) def portScan(host,port):
try:
sock=socket(AF_INET,SOCK_STREAM)
sock.connect((host,port))
print "[*]%d/tcp open" % port
sock.close()
except:
print "[*]%d/tcp close" % port if __name__=='__main__':
main()

0x02   运行截图

 0x03   问题记录

简述自己遇到的几个坑:

第一个是脚本执行一直报‘module’ object no attribute ‘OptionParser’,而且脚本是无任何错误的,

最终发现是因为脚本名称和python模块名称重复了,然后改了下脚本名称,再删除之前脚本执行生成的pyc文件,

之后脚本就可以正常运行了,一个脚本文件名引发的“血案”,望诸君留意,。。

第二个是使用socket时需要

import socket

from socket import *

如果不加上第二句,脚本执行会一直显示端口关闭。。。

【Python】端口扫描脚本的更多相关文章

  1. Linux shell编写端口扫描脚本

    Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...

  2. python端口扫描

    简易版: #author:Blood_Zero #coding:utf-8 import socket import sys PortList=[21,22,23,25,80,135] # host= ...

  3. python 端口扫描程序

    #! /usr/bin/env python3 #-*- coding:utf-8 -*- import socket import threading OPEN_COUNT = 0 lock = t ...

  4. 34.TCP非阻塞连接及套接字异常处理丶端口扫描脚本

    TCP非阻塞及套接字异常处理: TCP阻塞套接字异常捕获: 套接字创建失败,8000 socket.error 客户端连接错误: ConnectionRefusedError socket.gaier ...

  5. python端口扫描用多线程+线程安全的队列+Thread类实现

    用线程安全的队列Queue实现扫描端口数据存储 用多线程扫描端口 用Thread类实现程序组织 #coding:utf-8 import sys import socket import sys im ...

  6. python 端口扫描

    #!/usr/bin/env python #-*- coding:utf-8 -*- import socket #iptable=[] nmapport=[21, 22, 23, 80, 110] ...

  7. Python批量扫描服务器指定端口状态

    闲来无事用Python写了一个简陋的端口扫描脚本,其简单的逻辑如下: 1. python DetectHostPort.py iplist.txt(存放着需要扫描的IP地址列表的文本,每行一个地址) ...

  8. python自动化运维四:nmap端口扫描

    p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 端口扫描器: Python的第三方模块python-nmap可以实现高效的端口扫描. ...

  9. Python 网站后台扫描脚本

    Python  网站后台扫描脚本 #!/usr/bin/python #coding=utf-8 import sys import urllib import time url = "ht ...

随机推荐

  1. 工作流系统webservice服务

    http://blog.csdn.net/zhengzhb/article/details/7477616

  2. Bootstrap表格类名及对应图形

    .table:基础表格 不管制作哪种表格都离不开类名“table”.所以大家在使用Bootstrap表格时,千万注意,你的<table>元素中一定不能缺少类名“table”. .table ...

  3. modifiers标量调节器插件的定义和使用

    在插件目录plugins里新建文件 modifier.插件名.php文件(如 modifier.插件名.php)例:function smarty_modifier_test($utime, $for ...

  4. Windows下搭建JSP开发环境

    1. 配置说明: => 编辑器: Eclipse (Java EE IDE) => 数据库: MySQL (MySQL Workbench 进行数据库管理, 用 MySQL Connect ...

  5. elasticsearch-jdbc 使用

    elasticsearch-jdbc是一个将关系型数据库(RDBMS)数据导入到ElasticSearch库中的一个工具包,支持mysql.oracle.postgrey.csv等存储列式数据的容器. ...

  6. ubuntu 16.04快速建lvm

    1.准备2块虚拟硬盘 在执行下面之前先安装:lvm和mkfs.xfs apt install lvm2 -y apt install xfsprogs dd if=/dev/zero of=ceph- ...

  7. C# 判断是否是在设计模式下有效的方法

    public static bool IsDesignMode() { bool returnFlag = false; #if DEBUG if (LicenseManager.UsageMode ...

  8. PreparedStatementSQLException

    目录 文章背景 目录 问题分析 问题解决 说明 参考文章 版本记录 layout: default title: PreparedStatementSQLException category: [Te ...

  9. win7 64位备份时, 无法启动服务,0x80070422

    问题:当win7 64位系统在备份的时候,无法启动备份服务,错误代码:0x80070422 解决方法:计算机->管理->服务 找到 Block Level Backup Engine Se ...

  10. MIDA Converter Basic patched for RAD Studio 10.1.2 Berlin (VCL转换到FMX)

    Mida is the only way to try to convert your project from VCL to FireMonkey. Version after version, M ...