这个方法
连接主机上的80端口并将其发送
HEAD / HTTP/1.0
这需要跟着两个回车换行符
你会得到类似这样的东西
HTTP/1.1 200 OK
Date: Fri, 03 Oct 2008 12:39:43 GMT
Server: Apache/2.2.9 (Ubuntu) DAV/2 SVN/1.5.0 PHP/5.2.6-1ubuntu4 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.10.0
Last-Modified: Thu, 02 Aug 2007 20:50:09 GMT
ETag: "438118-197-436bd96872240"
Accept-Ranges: bytes
Content-Length: 407
Connection: close
Content-Type: text/html
你可以从"Server:"头中提取Apache版本号。
常用工具
你可以使用随Perl的LWP库一起安装的HEAD实用程序,例如:
HEAD http://your.webserver.com/
或者使用curl实用程序,例如:
curl --head http://your.webserver.com/
您还可以使用浏览器扩展程序,例如Live HTTP Headers或Firebug(适用于Firefox),或Fiddler(适用于IE)来查看服务器标头。
被Windows卡住了吗?
最后,如果您使用的是Windows,并且没有其他可用工具,请打开命令提示符(开始菜单->运行,键入“cmd”并按回车键),然后键入以下内容:
telnet your.webserver.com 80
然后输入(小心,您的字符不会回显)
HEAD / HTTP/1.0
按回车键两次,您将看到服务器头信息。
其他方法
正如cfeduke和Veynom所提到的,服务器可能被设置为在Server:标头中返回有限的信息。尝试上传一个包含此信息的PHP脚本到您的主机。
<?php phpinfo() ?>
使用网络浏览器请求页面,您应该能够看到报告的Apache版本。
您还可以尝试使用PHPShell进行探索,尝试执行类似以下命令:
/usr/sbin/apache2 -V