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中的自定义函数学习笔记
Sep 23 Python
Python获取网页上图片下载地址的方法
Mar 11 Python
python执行子进程实现进程间通信的方法
Jun 02 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
Python实现Mysql数据库连接池实例详解
Apr 11 Python
python 网络编程详解及简单实例
Apr 25 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
Apr 10 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
Python压缩模块zipfile实现原理及用法解析
Aug 14 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 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
PHP 飞信好友免费短信API接口开源版
2010/07/22 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
nginx下安装php7+php5
2016/07/31 PHP
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
使用js 设置url参数
2013/07/08 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
2019/08/09 Python
python将音频进行变速的操作方法
2020/04/08 Python
计算机应用专业毕业生求职信
2013/10/24 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
免职证明样本
2014/10/23 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
结婚老公保证书
2015/02/26 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
生产车间管理制度
2015/08/04 职场文书
安全伴我行主题班会
2015/08/13 职场文书