`

获取Web服务器类型的方法

阅读更多

转载自:http://www.linuxorz.com/show-15-1.html

Curl是一款用于在网络上传输数据的工具,支持HTTP, HTTPS, FTP, FTPS, TFTP, DICT,TELNET,LDAP等协议。通过curl你既可以将服务器的数据下载下来,也可以将本地的数据上传到服务器。curl的选项很多,大家可以参考curl manual。

最简单的用法,获取一个网站页面的源代码:

[root@linuxorz ~]# curl www.g.cn
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.cn/webhp?source=g_cn">here</A>.
</BODY></HTML>
[root@linuxorz ~]# curl www.google.cn

 言归正传,下面将告诉大家如何使用-Is选项来获取网站的web服务器类型。
-I :获取网站的HTTP-header信息
-s :静默模式。不显示进度及错误信息
--connect-timeout :设置连接超时秒数

[root@linuxorz ~]# curl -Is www.163.com
HTTP/1.0 200 OK
Server: nginx
Date: Fri, 08 Jan 2010 14:40:23 GMT
Content-Type: text/html; charset=GBK
Vary: Accept-Encoding
Expires: Fri, 08 Jan 2010 14:41:43 GMT
Cache-Control: max-age=80
Vary: User-Agent
Vary: Accept
X-Cache: MISS from cache.163.com
Connection: close

首先创建一个site.txt文件,里面输入相应的网站。

[root@linuxorz ~]# head site.txt
www.google.com
www.baidu.com
youa.baidu.com
post.baidu.com
hi.baidu.com
www.sogou.com
www.youdao.com
www.soso.com
www.sohu.com
www.sina.com

之后结合下面的curl.sh脚本,就可以获知site.txt中网站的服务器类型了。

#!/bin/sh
IIS=0
nginx=0
apache=0
other=0
if [ ! -f site.txt ]; then 
   echo "ERROR:site.txt NOT exists!" 
exit 1
fi

total=`wc -l site.txt|awk '{print $1}'`
for website in `cat site.txt`
do
   server=`curl -Is --connect-timeout 15 $website|awk -F":" '/^Server:/{print $2}'`
   echo -e $website":" $server
   if echo $server|grep -i "IIS">/dev/null
     then IIS=`expr $IIS + 1`
   elif echo $server|grep -i "Apache">/dev/null
     then Apache=`expr $Apache + 1`
   elif echo $server|grep -i "nginx">/dev/null
     then nginx=`expr $nginx + 1`
   else other=`expr $other + 1`
   fi
done
echo "--------------------------------------------"
echo -e "Total\tApache\tIIS\tnginx\tother"
echo -e "$total\t$Apache\t$IIS\t$nginx\t$other"
echo -e "100%\t"`echo "scale=5;$Apache/$total*100"|bc|cut -c1-5`"%\t"`echo "scale=5;$IIS/$total*100"|bc|cut -c1-5`"%\t"`echo "scale=5;$nginx/$total*100"|bc|cut -c1-5`"%\t"`echo "scale=5;$other/$total*100"|bc|cut -c1-5`"%\t"
echo "--------------------------------------------"
exit 0

分享到:
评论

相关推荐

    Web服务器的java实现

     根据上述HTTP协议的作用原理,实现GET请求的Web服务器程序的方法如下:  (1) 创建ServerSocket类对象,监听端口8080。这是为了区别于HTTP的标准TCP/IP端口80而取的;  (2) 等待、接受客户机连接到端口8080,...

    Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型示例代码.zip

    Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型示例代码

    Web服务器日志分析.pptx

    Apache 日志的配置 日志类型 错误日志 访问日志 传输日志 Cookie 日志 Web服务器日志分析全文共68页,当前为第4页。 日志内容 错误日志包含 获知失效链接 获知 CGI 错误 获知用户认证错误 访问日志包含 : 访问...

    易语言套接字WEB服务器

    易语言套接字WEB服务器源码,套接字WEB服务器,ERecv,HTTP协议处理,取请求信息,返回文档类型,WSAStartup,socket,htons,inet_addr,bind,listen,accept,recv,WSACleanup,send,CreateThread,closesocket,lstrlen,...

    浅谈使用nodejs搭建web服务器的过程

    Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。 大多数 web 服务器都支持...

    web-sever.rar_java http sever_sever_web sever

    实现了GET请求的Web服务器程序的方法,通过创建ServerSocket类对象,监听端口8080; 等待、接受客户机连接到端口8080; 创建与socket字相关联的输入流和输出流 然后,读取客户机的请求信息,若请求类型是GET,则从...

    改变您的HTTP服务器的缺省banner CustomHttpModules_4.0.dll

    这可能使得攻击者了解远程系统类型以便进行下一步的攻击。 解决方案 NSFOCUS建议您采取以下措施以降低威胁 打开网页,审查代码,我们发现这几个标头明显标明我们的服务器和平台信息,存在安全风险,必须要隐藏...

    stream:轻量级Dart Web服务器。 特征

    是Dart Web服务器,支持请求路由,过滤,模板引擎,WebSocket,MVC设计模式和基于文件的静态资源。 流是根据Apache 2.0许可证分发的。 安装 将此添加到您的pubspec.yaml (或创建它): dependencies: stream: ...

    WWW服务器的构建.doc

    由于Web服务器为它的客户提供的数据类型是机密的。静态的Web目录页比大多数需要 更新的目录页所需CPU占用率更低。 所以在很多中小型企业中都对Web服务器有这种信息获取与共享资源的功能,而Web服 务器能很好地解决...

    改变您的HTTP服务器的缺省banner CustomHttpModules_2.0.dll

    这可能使得攻击者了解远程系统类型以便进行下一步的攻击。 解决方案 NSFOCUS建议您采取以下措施以降低威胁 打开网页,审查代码,我们发现这几个标头明显标明我们的服务器和平台信息,存在安全风险,必须要隐藏...

    H3C XE7300 7305 IP呼叫处理服务器

    XE7300/7305 IP统一消息服务器是杭州华三通信技术有限公司XE 7000 IP通讯融合解决方案中提供IP统一消息服务的组件。该系列服务器主要为企业用户提供电子邮件、语音邮件和传真邮件合一的IP统一消息解决方案。XE7300/...

    Web2.0社区平台源码

    19.修改编辑时删除推荐类型出现的乱码问题(对itemName参数添加了WebUtils.UrlEncode()方法) SpaceBuilder/Web/Themes/Channels/Default/Controls/RecommendItem.ascx 20.修改分享浏览数一直不变 SpaceBuilder/Web...

    Web前端开发技术-Jquery其他方法.pptx

    $.ajax()方法:jQuery提供了$.ajax()方法,用来通过Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)技术请求服务器,获取服务器的响应结果。 Ajax是结合服务器端才能实现,需要具备了服务器搭建、...

    web-server-chrome:适用于Chrome的HTTP Web服务器(chrome.sockets API)

    适用于Chrome的Web服务器用于Chrome的HTTP Web服务器(chrome.sockets) 在chrome网上商店中获取它: : 许多人发现网络商店版本可用于进行一些基本的Web开发,以替代python -m SimpleHTTPServer。 但是,它也可以...

    PHP和MySQL Web开发第4版pdf以及源码

    15.8 安全的Web服务器 15.9 审计与日志记录 15.10 防火墙 15.11 备份数据 15.11.1 备份常规文件 15.11.2 备份与恢复MySQL数据库 15.12 自然环境安全 15.13 下一章 第16章 Web应用的安全 16.1处理安全性问题...

    ProxyLab实验-计算机系统基础-gddrxy

    代理甚至可以通过将来自服务器的对象存储到本地来实现缓存,后续的请求可以直接从缓存中获取Web对象而不需要再次与远程服务器通信。 3) 3.1第一部分:实现顺序的Web代理程序 4) 第一步是实现一个处理HTTP/1.0 GET...

    PHP和MySQL WEB开发(第4版)

    16.5.3 Web服务器配置 16.5.4 Web应用的商业主机服务 16.6 数据库服务器的安全性 16.6.1 用户和权限系统 16.6.2发送数据至服务器 16.6.3 连接服务器 16.6.4 运行服务器 16.7 保护网络 16.7.1 安装防火墙 16.7.2使用...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    1.4 JavaWeb应用的Web服务器Tomcat 1.4.1 Web应用服务工作原理 1.4.2 web应用服务器汇总 1.4.3 获取Tomcat 1.4.4 熟悉Tomcat的五脏六腑 1.5 JavaWeb开发利器之Eclipse 1.5.1 获取Eciipse 1.5.2 运行Eclipse 1.5.3 ...

    服务器基础知识(初学者必看).doc

    IIS是允许在Int ernet上发布信息的Web服务器。IIS通过使用超文本传输协议(HTTP)传输信息。还可配置 IIS 以提供文件传输 协议(FTP)服务。FTP服务允许用户从Web节点或到Web节点传送文件。 IIS的特点是配置简单,配置...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    13.9 用显式接口方法实现来增强编译时类型安全性 13.10 谨慎使用显式接口方法实现 13.11 设计:基类还是接口? 第14章 字符、字符串和文本处理 14.1 字符 14.2 System.String类型 14.2.1 构造字符串 14.2.2 ...

Global site tag (gtag.js) - Google Analytics