⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpchecker.py

📁 Network Administration Visualized 网络管理可视化源码
💻 PY
字号:
# -*- coding: ISO8859-1 -*-## Copyright 2003, 2004 Norwegian University of Science and Technology## This file is part of Network Administration Visualized (NAV)## NAV is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## NAV is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with NAV; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA### $Id: HttpChecker.py 3315 2005-07-27 12:12:47Z mortenv $# Authors: Magnus Nordseth <magnun@itea.ntnu.no>#from nav.statemon.event import Eventfrom nav.statemon.abstractChecker import AbstractCheckerfrom urlparse import urlsplitimport httplibfrom nav.statemon import Socketimport socketclass HTTPConnection(httplib.HTTPConnection):	def __init__(self,timeout,host,port=80):		httplib.HTTPConnection.__init__(self,host,port)		self.timeout = timeout		self.connect()	def connect(self):		self.sock = Socket.Socket(self.timeout)		self.sock.connect((self.host,self.port))class HTTPSConnection(httplib.HTTPSConnection):	def __init__(self,timeout,host,port=443):		httplib.HTTPSConnection.__init__(self,host,port)		self.timeout = timeout		self.connect()	def connect(self):		sock = Socket.Socket(self.timeout)		sock.connect((self.host,self.port))		ssl = socket.ssl(sock.s, None, None)		self.sock = httplib.FakeSocket(sock, ssl)		class HttpChecker(AbstractChecker):	def __init__(self,service, **kwargs):		AbstractChecker.__init__(self, "http", service, port=0, **kwargs)	def execute(self):		ip, port = self.getAddress()		url = self.getArgs().get('url','')		if not url:			url = "/"		protocol, vhost, path, query, fragment = urlsplit(url)				i = HTTPConnection(self.getTimeout(), ip, port or 80)		if vhost:			i.host=vhost		i.putrequest('GET',path)		internalRev = "$Rev: 1361 $"		internalRev = internalRev[:-2].replace('$Rev: ','')		i.putheader('User-Agent','NAV/ServiceMon Build 1734 Release 31337, internal revision %s' % internalRev)		i.endheaders()		response = i.getresponse()		if response.status >= 200 and response.status < 400:			status = Event.UP			version = response.getheader('SERVER')			self.setVersion(version)			info= 'OK (%s) %s' % (str(response.status), version)		else:			status = Event.DOWN			info = 'ERROR (%s) %s'  % (str(response.status),url)		return status,infodef getRequiredArgs():	"""	Returns a list of required arguments	"""	requiredArgs = []	return requiredArgs								

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -