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实现爬取千万淘宝商品的方法
Jun 30 Python
使用python实现个性化词云的方法
Jun 16 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
Python实现破解12306图片验证码的方法分析
Dec 29 Python
python实现电子产品商店
Feb 26 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 Python
python脚本后台执行方式
Dec 21 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
Python描述数据结构学习之哈夫曼树篇
Sep 07 Python
python 实现弹球游戏的示例代码
Nov 17 Python
pandas中关于apply+lambda的应用
Feb 28 Python
Python+Selenium自动化环境搭建与操作基础详解
Mar 13 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写的采集程序
2007/03/16 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
smarty自定义函数用法示例
2016/05/20 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
python多线程扫描端口示例
2014/01/16 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
Python实现微信好友的数据分析
2019/12/16 Python
keras 读取多标签图像数据方式
2020/06/12 Python
Django自带的用户验证系统实现
2020/12/18 Python
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
销售主管的自我评价分享
2014/01/03 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers