python探测端口_Python实现端口检测

#!/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()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值