python调用扫描仪_使用Python编写简单的端口扫描器的实例分享
单线程实现单线程实现道理比较简单,这里尝试Soket连接3389,连接成功说明端口开放,否则说明没有开远程服务。随便修改了一下就ok了,代码如下,最终得到自己的IP地址。
#!/usr/bin/env python
import socket
if __name__=='__main__':
port=3389
s=socket.socket()
for cnt in range(253,2,-1):
address='XXX.XXX.XXX.'+str(cnt) #XXX.XXX.XXX IP网段
try:
s.connect((address,port))
print address
except socket.error,e:
print 'Error OR Port Not Opened'
Python的代码简单明了,但是功能不简单,速度有些慢,主要还是单线程和网络的原因吧。改进一下可以当一个简陋的端口扫描器使用了,扫描指定网段、指定端口,多线程速度可能能好一点吧。
多线程实现前几天看了个讲使用Python扫描端口的教程,看了之后自己也写了个扫描端口的脚本。记录下来,方便自己以后回顾。
端口扫描端口效果图
python扫描器源代码
# -*- coding:utf8 -*-
#!/usr/bin/python
# Python: 2.7.8
# Platform: Windows
# Authro: wucl
# Program: 端口扫描
# History: 2015.6.1
import socket, time, thread
socket.setdefaulttimeout(3)
def socket_port(ip,port):
"""
输入IP和端口号,扫描判断端口是否开放
"""
try:
if port>=65535:
print u'端口扫描结束'
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result=s.connect_ex((ip,port))
if result==0:
lock.acquire()
print ip,u':',port,u'端口开放'
lock.release()
s.close()
except:
print u'端口扫描异常'
def ip_scan(ip):
"""
输入IP,扫描IP的0-65534端口情况
"""
try:
print u'开始扫描 %s' % ip
start_time=time.time()
for i in range(0,65534):
thread.start_new_thread(socket_port,(ip,int(i)))
print u'扫描端口完成,总共用时 :%.2f' %(time.time()-start_time)
raw_input("Press Enter to Exit")
except:
print u'扫描ip出错'
if __name__=='__main__':
url=raw_input('Input the ip you want to scan:\n')
lock=thread.allocate_lock()
ip_scan(url)
本文标题: 使用Python编写简单的端口扫描器的实例分享
本文地址: http://www.cppcns.com/jiaoben/python/137535.html
python调用扫描仪_使用Python编写简单的端口扫描器的实例分享相关推荐
- python写端口扫描器_使用Python编写简单的端口扫描器的实例分享
#!/usr/bin/env python import socket if __name__=='__main__': port=3389 s=socket.socket() for cnt in ...
- python还款程序_使用Python3 编写简单信用卡管理程序
1.程序执行代码: #Author by Andy #_*_ coding:utf-8 _*_ import os,sys,time Base_dir=os.path.dirname(os.path. ...
- python调用键盘_使用 Python 控制自己的电脑和键盘是一种什么样的体验?
可能有时候你需要在电脑做一些重复的点击或者提交表单等操作,如果能通过 Python 预先写好相关的操作指令,让它帮你操作,然后你自己爱干嘛干嘛去,有点 "按键精灵" 的意思,是不是 ...
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- python自动抢单_【Python成长之路】基于sikuli jar包,实现淘宝自动抢单功能(1)...
[写在前面] 记得节前,西哥问我能不能帮忙写个淘宝自动抢单的功能.其实之前就有提到过sikuli IDE工具,可以很方便地实现图形化自动化,只是当时并没有真正用python实现. 因此刚好借这个机会, ...
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- java jsp网页计算器_使用JSP制作一个超简单的网页计算器的实例分享
实现一个简单的计算器程序,要求:使用jsp+javabean模式实现. 项目源代码如下: 文件:calculator.jsp 简单的计算机 进行计算 --%> cal.calculate(); ...
- c调用python第三方库_用 Python ctypes 来调用 C/C++ 编写的第三方库
看到一篇简洁的文章--如何用Python ctypes调用C++(ctypes调用C没这么多麻烦事),不敢独享... 如果需要用 Python 调用 C/C++ 编写的第三方库(这些第三方库很可能就是 ...
- Python调用Gurobi:Assignment Problem(指派问题)简单案例
Python调用Gurobi:简单案例 Python调用Gurobi:Assignment Problem简单案例 1. Assignment Problem Model Python调用Gurobi ...
最新文章
- 机载雷达发展简史:从蝙蝠到机载相控阵
- 基于.NET的图表控件解决方案
- WF4.0 基础篇 (二) Activity介绍及WriteLine Activity的使用
- boost::callable_traits下qualified_class_of的测试程序
- Android隐式启动匹配:action,category,data
- SQL Server 2014 新建数据库
- 用户生命周期分析全攻略
- vue使用datav+echarts
- Riverbed:SDN向广域网扩展为企业带来哪些价值
- 自定义组合键进入u-boot
- MYSQL数据库更改目录及NAVACATamp;nbs…
- 三步教你制作龙卷风迁徙地图
- 如何在Altium Designer 20中增加原件库
- BeanFacotry 和ApplicationContext联系和区别
- 【专升本计算机】计算机操作系统练习题(选择判断名词解释简答)
- 在职人员缴纳的社保跟灵活就业人员缴纳的社保到底有什么不同?
- Android设置状态栏字体深色,Android实现修改状态栏背景、字体和图标颜色的方法...
- 算法手撕代码51~55
- Linux学习基本步骤
- 副词修饰形容词和副词