【Python】端口扫描脚本
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】端口扫描脚本的更多相关文章
- Linux shell编写端口扫描脚本
Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...
- python端口扫描
简易版: #author:Blood_Zero #coding:utf-8 import socket import sys PortList=[21,22,23,25,80,135] # host= ...
- python 端口扫描程序
#! /usr/bin/env python3 #-*- coding:utf-8 -*- import socket import threading OPEN_COUNT = 0 lock = t ...
- 34.TCP非阻塞连接及套接字异常处理丶端口扫描脚本
TCP非阻塞及套接字异常处理: TCP阻塞套接字异常捕获: 套接字创建失败,8000 socket.error 客户端连接错误: ConnectionRefusedError socket.gaier ...
- python端口扫描用多线程+线程安全的队列+Thread类实现
用线程安全的队列Queue实现扫描端口数据存储 用多线程扫描端口 用Thread类实现程序组织 #coding:utf-8 import sys import socket import sys im ...
- python 端口扫描
#!/usr/bin/env python #-*- coding:utf-8 -*- import socket #iptable=[] nmapport=[21, 22, 23, 80, 110] ...
- Python批量扫描服务器指定端口状态
闲来无事用Python写了一个简陋的端口扫描脚本,其简单的逻辑如下: 1. python DetectHostPort.py iplist.txt(存放着需要扫描的IP地址列表的文本,每行一个地址) ...
- python自动化运维四:nmap端口扫描
p { margin-bottom: 0.25cm; line-height: 120% } a:link { } 端口扫描器: Python的第三方模块python-nmap可以实现高效的端口扫描. ...
- Python 网站后台扫描脚本
Python 网站后台扫描脚本 #!/usr/bin/python #coding=utf-8 import sys import urllib import time url = "ht ...
随机推荐
- [BAT] 通过批处理加host
echo. >> %WINDIR%\system32\drivers\etc\hosts & echo xxx.xxx.xxx.xx test_host >> %WIN ...
- mybatis思维导图(一)
写在前面 与hibernate相比,我无疑更喜欢mybatis,就因为我觉得它真的好用,哈哈.它简单上手和掌握:sql语句和代码分开,方便统一管理和优化:当然缺点也有:sql工作量很大,尤其是字段多. ...
- 白盒测试实践--Day4 12.20
累计完成任务情况: 阶段内容 参与人 完成个人情况说明并提交作业 全体 汇总作业,查漏补缺,完成代码测试总结 小靳.小龙 完成测试小结 小黄.小尹 完成静态代码检查结果报告 小靳 完成JUnit脚本编 ...
- mybatis 存储过程调用
接口 UserInfoMapper.java xml UserInfoMapper.xml 如何关联 <?xml version="1.0" encoding=" ...
- css3的那些高级选择器二
在上个星期我介绍了css3的属性选择器,伪类选择器和结构伪类选择器,今天楼主继续把其它的css3选择器说完. 在css3中,共有11中UI状态伪类选择器,分别是E:hover,E:active,E:f ...
- ADF文件数据结构解析和ADF文件读写
包括位姿和特征点位置和描述信息. What does an Area Description File (ADF) looks like? 4down votefavorite 2 I'm start ...
- WSAStartup函数
函数WSAStartup 一.WSAStartup函数 int WSAStartup ( ...
- Gym - 101498G(Super Subarray )
In this problem, subarray is defined as non-empty sequence of consecutive elements. We define a suba ...
- XJOI 3363 树4/ Codeforces 739B Alyona and a tree(树上差分+路径倍增)
D. Alyona and a tree time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- C#高级特性:动态绑定
C#高级特性:动态绑定 动态绑定 动态绑定将类型绑定(类型解析.成员和操作过程)从编译时推迟到了运行时.在编译时,如果程序员知道某个特定函数.成员的存在而编译器不知道,那么这种操作是非常有用的,这种情 ...