#!/bin/env python

#-*- coding:utf-8 -*-# _auth:kaliarch

import requestsfromconfigparser import ConfigParser

import refromtcp_port_check import loggerclasscheck_ports():

def __init__(self,logger):"""初始化,获取配置文件信息""" self.url = 'http://tool.chinaz.com/iframe.ashx?t=port'self.headers={'Accept': 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.8','Connection': 'keep-alive','Content-Length': '62','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Host': 'tool.chinaz.com','Origin': 'http://tool.chinaz.com','Referer': 'http://tool.chinaz.com/port/','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36','X-Requested-With': 'XMLHttpRequest'}

config=ConfigParser()

config.read('info.cfg',encoding='utf-8')

self.address_list= config['port_check_info']['address']

self.port_list= config['port_check_info']['ports']

#初始化logger

logger=logger.LogHelper()

logname=logger.create_dir()

self.logoper=logger.create_logger(logname)

def _get_body(self):"""获取address和port

:return: list""" address_list = self.address_list.split(',')

port_list= self.port_list.split(',')

# 处理端口范围,返回range

range_flag=False

port_range=None

content_List_range=[]for port inport_list:if '-' inport:

range_flag=True

port_range= range(int(port.split('-')[0]),int(port.split('-')[1])+1)

port_list.remove(port)

# 处理总体listfor add inaddress_list:ifrange_flag:for port inport_range:

content_List_range.append(add+ ':' +str(port))

# 合并range和普通list

content_List= [ add+':'+port for add in address_list for port inport_list ]

content_List_range.extend(content_List)returncontent_List_range

def run(self):"""进行端口检测

:return:""" for content inself._get_body():

content_list= content.split(':')

body={'host': content_list[0],'port': content_list[1],'encode': 'tlCHS1u3IgF4sC57m6KOP3Oaj1Y1kfLq'}try:

response= requests.post(url=self.url,data=body,headers=self.headers)

port_status= re.findall("msg:'(.*?)'", response.text)if len(port_status) > 0:

print('%s,port status is:%s' %(content, port_status))

self.logoper.info('%s,port status is:%s' %(content, port_status))else:

self.logoper.info('%s,port status is:%s' %(content, port_status))

print('Occer error!请输入正确的地址和端口')

except Exceptionase:

self.logoper.info(e)if __name__ == '__main__':

check_app=check_ports(logger)

check_app.run()

python探测端口_Python实现端口检测相关推荐

  1. python探测端口_Python实现端口检测的方法

    一.背景: 在平时工作中有遇到端口检测,查看服务端特定端口是否对外开放,常用nmap,tcping,telnet等,同时也可以利用站长工具等web扫描端口等. 但是在使用站长工具发现: 每次只能输入一 ...

  2. python入门指南_Python实时对象检测入门指南

    python入门指南 多年来,研究人员一直在研究赋予机器以视觉识别和识别物体的能力的可能性. 这个称为计算机视觉或CV的特定领域具有广泛的现代应用程序. 从被自动驾驶汽车用于道路目标检测到复杂的面部和 ...

  3. python颜色识别_Python人体肤色检测

    Python人体肤色检测 概述 本文中的人体肤色检测功能采用 OpenCV 库实现, OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Andro ...

  4. python 图像变化检测_python hough变换检测直线的实现方法

    1 原理 2 检测步骤 将参数空间(ρ,θ) 量化成m*n(m为ρ的等份数,n为θ的等份数)个单元,并设置累加器矩阵,初始值为0: 对图像边界上的每一个点(x,y)带入ρ=xcosθ+ysinθ,求得 ...

  5. python中用socket检测端口_python基于socket函数实现端口扫描

    本文实例为大家分享了python基于socket实现端口扫描的具体代码,供大家参考,具体内容如下 自学Python一段时间,写个端口扫描器练练手.有什么不足之处,请见谅 这是基于socket函数对端口 ...

  6. 从入门到入土:基于Python|ACK|FIN|Null|Xmas|windows|扫描|端口扫描|scapy库编写|icmp协议探测主机|对开放端口和非开放端口完成半连接扫描|全连接扫描|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  7. python多线程扫描_Python多线程扫描端口代码示例

    本文代码实现Python多线程扫描端口,具体实现代码如下. #coding:utf-8 import socket import thread import time socket.setdefaul ...

  8. python监控端口_python监控设备端口示例

    python监控设备端口示例 发布于 2014-08-10 18:22:16 | 120 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对象.解释型计算机程 ...

  9. 【Python】Python端口占用测试(检测Socket)

    文章目录 windows 端口相关 动态端口查询 动态端口设置 Python实现的端口测试接口 客户端 服务端 windows 端口相关 本文内容相对简单,开头部分是对Windows端口状态的一些描述 ...

最新文章

  1. 【小贴士】在线画流程图工具
  2. Java中的增强for循环的实现原理与坑
  3. Web 设计:实现干净代码的12条定律
  4. 【算法】差分约束系统
  5. 【测试点分析】1081 检查密码 (15分)
  6. 用训练好的paddlepaddle模型继续训练模型和验证数据ckpt
  7. 定积分算法java_变步长梯形积分算法求解函数定积分
  8. Teradata在中国银行业的应用简介
  9. android 自定义 黑点,Android自定义密码样式 黑点转换成特殊字符
  10. 利用XML实现通用WEB报表打印(参考)
  11. python使用minidom读写xml
  12. Leetcode143. 重排链表 (golang描述)
  13. java 异常补偿解决_在java 的异常处理模型中,无论是否发生异常,(  )块中的代码都会被执行。...
  14. 平安科技移动开发二队技术周报(第十一期)
  15. python收取wss数据_python量化入门(二)——确定基金的市值属性和风格属性
  16. PHP代码审计工具RIPS
  17. VAE背后的哲学思想及数学原理
  18. 原生微信小程序下拉刷新和加载动画
  19. Flask项目: 蓝本
  20. mysql 取差值_mysql计算两条数据差值,求大神解答

热门文章

  1. FFmpeg流媒体调试工具(六)
  2. Ubuntu18.04安装npm失败解决
  3. C++ String16与const char*及char*与vector相互转换
  4. Mac下配置ndk/adb
  5. C++之MFC之Unicode转char*
  6. SpringBoot之打包错误
  7. 深度学习自学(十):人脸检测android端-JNI调试调用底层检测识别库
  8. linux方向键ascii_Linux
  9. 云服务器的主要用途是什么?
  10. 如何安装和使用Android夜神模拟器