转载自: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服务器设置方法详解 #### 实验目标与原理 本次实验旨在深入了解Web服务器的设计与实现,具体目标包括: 1. **掌握Web服务基础原理与架构**:理解Web服务的运作机制,包括其基本架构和各组件间的交互模式。...
在IT领域,特别是软件开发与网络编程中,利用C#语言构建一个简易的WEB服务器是一项既具挑战性又富有教育意义的任务。以下是对基于C#实现的WEB服务器的知识点进行的详细阐述,涵盖其基本原理、核心功能以及具体实现...
这里的“万能Web服务器”可能指的是一个设计精良、兼容性广泛的服务器软件,能够支持各种类型的Web应用程序,无论它们是基于ASP(Active Server Pages)还是其他脚本语言。这样的服务器软件极大地简化了部署流程,让...
在本实验中,我们将探索如何在Windows环境下使用Java语言实现一个基本的Web服务器。这个实践项目旨在深化学生对HTTP协议的理解,以及Web服务器的工作机制。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络...
通过上述方法,可以有效地增强WEB服务器的安全防护能力,降低被攻击的风险。然而,值得注意的是,网络安全是一个不断变化的领域,因此除了采取上述措施外,还应保持警惕,不断学习新的安全技术和策略,以应对不断...
【简易WEB服务器(C++)】是一个编程项目,旨在通过C++语言实现一个基础的互联网服务器,能够响应用户的HTTP请求并提供文件服务。这个项目主要关注网络编程和HTTP协议的理解,是学习网络通信和服务器开发的初级实践...
本项目提供了一个用Java编写的独立Web服务器,这使得开发者可以更深入地理解Web服务器的工作原理,并能够自定义其功能。 【描述】: 这个项目旨在作为一个教学资源,帮助初学者理解Web服务器的内部运作。通过Java...
Web服务器是一种软件,用于接收HTTP(超文本传输协议)请求,并返回相应的HTTP响应,通常是HTML文档或者其他类型的资源。常见的Web服务器有Apache、Nginx和IIS等。自定义Web服务器则意味着从零开始构建这样一个系统...
本项目是用C++实现的一个简单Web服务器,它能够处理GET请求,是学习多线程技术和网络编程的典型实例。 首先,让我们详细探讨“多线程”这一概念。在计算机程序设计中,多线程允许一个应用程序同时执行多个不同的...
要创建一个简单的Web服务器,我们需要继承自QTcpServer类,并重写newConnection()和incomingConnection()等关键方法。newConnection()会在有新的客户端连接时被调用,而incomingConnection()则用于处理实际的网络...
4. **创建服务器实例**: 在“服务器”视图中,右键点击“新建”->“服务器”,选择Resin服务器类型,按照向导完成服务器实例的创建。 5. **部署Web应用**: 将项目添加到服务器实例,右键点击服务器,选择“添加和...
当我们在浏览器中输入网址并按下回车键时,实际上是向Web服务器发送了一个请求。Web服务器接收到请求后,根据请求的内容查找相应的文件或执行特定的程序,然后将结果以HTTP响应的形式返回给用户。 网页如何显示图片...
知识点:使用Java编程语言构建Web服务器 在现代网络开发中,使用高级编程语言如Java来构建Web服务器变得越来越常见。这种做法不仅提升了开发效率,还增强了服务器的安全性和可扩展性。下面,我们将深入探讨如何使用...
在本文中,我们将深入探讨如何使用C++语言和TinyHTTP源码实现一个轻量级的Web服务器,以处理HTTP协议中的GET和POST请求。这个项目是适合初学者的,可以帮助他们理解网络编程的基础,特别是HTTP协议和服务器端的实现...
本文将深入探讨"Http Server WEB服务器",以及如何实现GET和POST方法的Web处理。 首先,让我们了解HTTP服务器的基本工作原理。HTTP是一种应用层协议,基于TCP/IP通信协议来传输数据。当用户在浏览器中输入URL并按下...
Web服务器的架构通常包含以下几个核心部分: 1. **服务器初始化**:这个阶段主要是服务器的准备工作,包括启动守护进程、创建TCP套接字、绑定到特定端口、将套接字转化为监听状态,以便持续等待客户端的连接请求。 ...
首先,我们要理解Web服务器的基本工作原理,它是互联网上提供静态或动态内容的核心组件。Web服务器接收HTTP请求,处理这些请求,并通过HTTP响应将结果返回给客户端,如浏览器。 在C++中实现Web服务器,首先需要对...
根据上述HTTP协议的作用原理,实现GET请求的Web服务器程序的方法如下: (1) 创建ServerSocket类对象,监听端口8080。这是为了区别于HTTP的标准TCP/IP端口80而取的; (2) 等待、接受客户机连接到端口8080,...
【web服务器套接字编程】涉及的核心概念是网络通信中的Socket编程,以及HTTP协议的应用。Socket编程是网络通信的基础,它允许两个网络应用程序之间建立连接并交换数据。在这个实验中,我们将实现一个简单的Web服务器...