Python实现的IP端口扫描工具类示例


Posted in Python onFebruary 15, 2019

本文实例讲述了Python实现的IP端口扫描工具类。分享给大家供大家参考,具体如下:

去年服务器老是被攻击,每次上线之后,上线的人急急忙忙下班,忘记关闭一些端口。导致有次服务器被攻破。损失严重。

这段时间再做仪器对接,把医疗器械对接到我们SAAS平台,有些仪器是通过网线进行数据传输的。通过网线进行数据传输,无非就是通过端口号进行传输交互,但是找不到说明书,国内搞仪器对接开发的也很少,所以网上开源的或者介绍的东西很少,对于我们来说,仪器是个黑盒,想要拿到里面的东西,还要自己去摸索,去试验,比较浪费时间,脑子一转就想到了之前自己写的端口扫描工具,连到一个局域网,一键找到开放的端口,直接端口链接上,拿到数据,分分钟解决了拿数据的问题。

所以好东西要分享出来。

目前我发现的用处:

1,服务器上线之后的扫描工具,那些端口要开放那些不能开放,扫一扫就知道了。

2,当确定对方是通过端口传输的,但是不知道端口号,是人是妖,你也扫一扫(用端口号去传输数据比蓝牙什么的快多了,只要你的数据足够大,上传和下载带宽可以打满你的手机所支持的带宽)。

3,想看看自己的手机那些端口号被开放了,在设置中找到自己的IP 或者下载个命令行执行工具 ifconfig下就知道了。

注意的是 不同的电脑不同的CPU 每次最多创建的线程是不一样的,可能创建线程过多,会报错,所以如果报错,自己修改下,每次扫描的个数,再剪成更小的段就可以了,或者再把seelp的时间设置的更长一些,保证能把0-65536之间的端口扫描一遍就可以了

# -*- coding:utf8 -*-
import socket, time, thread
import os
from time import sleep
socket.setdefaulttimeout(1)
def socket_port(ip,port):
 try:
  if port>=65535:
   return 
  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 Exception,e:
  pass
def ip_scan(ip):
 """
 输入IP,扫描IP的0-65534端口情况
 """
 try:
  print u'开始扫描 %s' % ip
  start_time=time.time() 
  for j in range(0,660):
   for i in range(j*100,100*(j+1)):
    thread.start_new_thread(socket_port,(ip,int(i)))
   sleep(0.1)#休眠 防止线程创建的过多报错(can not create new start thread)
  print u'扫描端口完成,总共用时 :%.2f' %(time.time()-start_time)
 except Exception,e :
  print u'扫描ip出错'
if __name__=='__main__':
 lock=thread.allocate_lock()
 ip_scan('192.168.3.37')

运行结果:

Python实现的IP端口扫描工具类示例

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python之模拟鼠标键盘动作具体实现
Dec 30 Python
python连接远程ftp服务器并列出目录下文件的方法
Apr 01 Python
Python的包管理器pip更换软件源的方法详解
Jun 20 Python
Php多进程实现代码
May 07 Python
python3监控CentOS磁盘空间脚本
Jun 21 Python
python3实现字符串操作的实例代码
Apr 16 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
Aug 12 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
Python代码块及缓存机制原理详解
Dec 13 Python
调整Jupyter notebook的启动目录操作
Apr 10 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
python3中数组逆序输出方法
Dec 01 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 #Python
Python从文件中读取数据的方法讲解
Feb 14 #Python
python爬取cnvd漏洞库信息的实例
Feb 14 #Python
基于python历史天气采集的分析
Feb 14 #Python
Python 实现域名解析为ip的方法
Feb 14 #Python
解决python Markdown模块乱码的问题
Feb 14 #Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 #Python
You might like
phpBB BBcode处理的漏洞
2006/10/09 PHP
一个简单的PHP入门源程序
2006/10/09 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
基于python3的socket聊天编程
2020/02/17 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
项目合作意向书模板
2014/07/29 职场文书
课程设计的心得体会
2014/09/03 职场文书
2014年化验室工作总结
2014/11/21 职场文书
财务会计岗位职责
2015/02/03 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
python脚本框架webpy模板控制结构
2021/11/20 Python