web服务器检测
# coding=utf-8
import sys
import socket
import re def check_webserver(address, port, resource):
address = socket.gethostbyname(address) if not resource.startswith('/'):
resource = '/' + resource request_string = 'GET %s HTTP/1.0\r\n\r\n' % (resource)
print 'HTTP request: |||%s||||' % request_string
s = socket.socket()
failed = False
print 'Attempting to connect to %s on port %s' % (address, port)
try:
s.connect((address, port))
print 'Connected to %s on port %s' % (address, port)
s.send(request_string)
resp = s.recv(100)
print 'Received 100 bytes of HTTP response'
print '|||%s|||' % resp
except socket.error as e:
print 'Connection to %s on port %s failed: %s' % (address, port, e)
failed = True
finally:
print 'Close the connection'
s.close() if failed:
return False lines = resp.splitlines()
print 'First line of HTTP response: %s' % lines[0]
try:
version, status, message = re.split('\s+', lines[0], 2)
except ValueError:
print 'Failed to split status line'
return False if status in ['', '']:
print 'Success - status was %s' % status
return True
else:
print 'Failure - Status was %s' % status
return False if __name__ == '__main__':
from argparse import ArgumentParser
parser = ArgumentParser(description=u"基于socket的web服务器检测")
parser.add_argument(
'-a',
'--address',
dest="address",
default="localhost",
help="address for the server")
parser.add_argument(
"-p",
"--port",
dest="port",
type=int,
default=80,
help="port for the server")
parser.add_argument(
"-r",
'--resource',
dest='resource',
default="index.html",
help="resouce to check")
args = parser.parse_args()
check = check_webserver(args.address, args.port, args.resource)
print 'check_webserver returned: %s' % check
sys.exit(not check)
使用httplib
def check_webserver_by_httplib(address, port, resource):
address = socket.gethostbyname(address)
failed = False
if not resource.startswith('/'):
resource = '/' + resource
try:
conn = httplib.HTTPConnection(address, port)
print 'HTTP connection created successfully'
# make request
conn.request('GET', resource)
print 'request for %s successful' % (resource)
# get response
resp = conn.getresponse()
print 'response status: %s' % resp.status
except socket.error as e:
print 'HTTP connection failed: %s' % e
return False
finally:
conn.close()
print 'HTTP connection closed successfully' if resp.status in [200, 301]:
return True
else:
return False
web服务器检测的更多相关文章
- Web Service 其他服务器检测不到查询测试按钮
1.Web Service 其他服务器检测不到查询测试按钮,config需要修改地方: <system.web> <webServices> <protocols> ...
- 前端学HTTP之WEB服务器
前面的话 Web服务器每天会分发出数以亿计的Web页面,它是万维网的骨干.本文主要介绍WEB服务器的相关内容 总括 Web服务器会对HTTP请求进行处理并提供响应.术语“Web服务器”可以用来表示We ...
- 关于Web服务器的认识
马上就要毕业了,也要开始找工作了,大学写了这么多代码了,却没有好好总结一下常用的概念很是遗憾额,就通过这篇博客记录一下我最常用的一些知识好了. 说到Web服务器,有很多文章都介绍的很好,之前看到一篇非 ...
- 多Web服务器之间共享Session的解决方案
一.提出问题: 为了满足足够大的应用,满足更多的客户,于是我们架设了N台Web服务器(N>=2),在多台Web服务器的情况下,我们会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务 ...
- Web服务器的工作原理
Web服务器的工作原理 Web服务器工作原理概述 很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了 ...
- Jexus V5.8.0正式发布:跨平台的ASP.NET WEB服务器
Jexus Web Server V5.8.0 已于今日(12月10日)正式发布,下载地址:http://www.linuxdot.net/. Jexus v5.8.0有如下的更新: 1,为反向代理增 ...
- ASP.NET 开发必备知识点(1):如何让Asp.net网站运行在自定义的Web服务器上
一.前言 大家都知道,在之前,我们Asp.net 的网站都只能部署在IIS上,并且IIS也只存在于Windows上,这样Asp.net开发的网站就难以做到跨平台.由于微软的各项技术的开源,所以微软自然 ...
- web服务器工作原理
Web服务器工作原理概述 转载自http://www.importnew.com/15020.html 很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它 ...
- Web服务器Nginx多方位优化策略
标签:性能 Web 架构 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dongsong.blog.51cto.co ...
随机推荐
- 未能加载文件或程序集“Microsoft.Office.Interop.Excel
解决方法:未能加载文件或程序集“Microsoft.Office.Interop.Excel...” 2010-07-25 08:06:15 来源:源码之家 站长整理 [大 中 小] ...
- tomcat的简单配置与适用默认的web应用
指定tomcat端口: server.xml: <Connector port="8080" protocol="HTTP/1.1" connection ...
- jquery ajax 语法
$("select[name=type_id]").change(function(e) { var val=$(this).val(); $.ajax({ ...
- Python学习(002)--Python介绍
一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...
- 第十七篇 make的路径搜索综合实践
本节我们编写路径搜索相关的makefile,具体需求如下: 1.工程项目中不希望源码文件夹在编译时被改动(只读文件夹). 2.在编译时自动创建文件夹(build)用于存放编译结果. 3.编译过 ...
- MATLAB安装教程
1.资源下载 下载官方安装包R2015b_win64.(文件太大,没上传资源) 下载破解文件包,解压其中的相应压缩包(一般是win64那个压缩包) 下载地址:链接:http://pan.baidu.c ...
- 有道词典 纯净版 - imsoft.cnblogs
软件名称:有道词典软件版本:5.4 正式版(5.4.46.5554)软件主页:http://cidian.youdao.com/软件定制:飞扬时空更新日期:2013年8月26日 软件简介: 有道词典是 ...
- long long 与 int
- 【spring data jpa】好文储备
[spring data jpa]带有条件的查询后分页和不带条件查询后分页实现 : https://blog.csdn.net/lihuapiao/article/details/48782843 ...
- solr学习四(关于性能的杂知识)
将所有只用于搜索的,而不需要作为结果的field(特别是一些比较大的field)的stored设置为false 比如我们在solr中index了一篇word,对于这篇word,我们只需要这篇文章的下载 ...