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. Siverlight MarkerSize 控制数据点半径大小 LineThickness 控制点与点之间直线的厚度

    using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...

  2. sscanf高级用法级正则表达式

    sscanf高级用法级正则表达式  摘自:https://www.cnblogs.com/bluestorm/p/6864540.html sscanf与scanf类似,都是用于输入的,只是后者以屏幕 ...

  3. 实践作业4---DAY3阶段二。

    第二阶段是用户调研,我们小组选择了一个5班的同学,作为采访对象.采访比较详实,但是样本太少,不太有说服力. 具体采访详情如下: 问:请问您使用喜欢发表Blog么? 答:肯定有啊. 问:都用什么网站发表 ...

  4. CircRNA 环化RNA

    2016国自然新秀CircRNA的研究策略和分析  

  5. Requests接口测试-对cookies的操作处理(二)

    我们继续来讨论一下cookie这方面的内容,我们都知道cookie是数据,一般的话在我接口测试中,数据都是要和代码进行分离的.本篇内容,我们队cookie内容进行处理,我们把登陆成功后的cookie写 ...

  6. 解决Emoji存储MySQL报错问题

    在解决之前,得先说明一下为什么会出现报错,Emoji表情占用4个字节,但是MySQL数据库UTF-8编码最多只能存储3个字节,就会导致存储不进去 如何解决Emoji存储问题 mysql 的 utf8编 ...

  7. .NET基础 (04)基础类型和语法

    基础类型和语法1 .NET中所有内建类型的基类是什么2 System.Object中包含哪些方法,哪些是虚方法3 值类型和引用类型的区别4 简述装箱和拆箱原理5 C#中是否有全局变量6 struct和 ...

  8. 探索式软件测试—Exploratory Software Testing

    最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...

  9. mysql - 查看表字段和字段描述

    1.mysql查看表字段和字段描述 SELECT column_name, column_comment FROM information_schema.columns WHERE table_sch ...

  10. 深入理解java虚拟机(十二) Java 语法糖背后的真相

    语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这些语法糖虽然不会对语言 ...