Answers:
您可以查找NMap内置的OS指纹识别功能。
但是,如果您要查找的是“ Google正在运行什么?”之类的信息,您不会走得太远,因为您不知道负载均衡器的背后是什么,否则防火墙将阻止它,并且指纹只能如此精确,这样您就可以得到错误的报告,并且当连接以某种方式转换为NAT时,您可能无法到达任何地方的。
许多网站会在HTTP标头中告诉您:
$ curl -s -I hotmail.com | grep Server
Server: Microsoft-IIS/7.5
$ curl -s -I pinterest.com | grep Server
Server: nginx/0.8.54
一些包括操作系统,有时包括版本:
$ curl -s -I linuxquestions.com | grep Server
Server: Apache/2.2.9 (Unix)
$ curl -s -I red.com | grep Server
Server: Apache/2.2.3 (Red Hat)
$ curl -s -I slashdot.org | grep Server
Server: Apache/2.2.3 (CentOS)
$ curl -s -I bar.com | grep Server
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 PHP/5.3.8
有些人编写自己的网络服务软件:
$ curl -s -I google.com | grep Server
Server: gws
$ curl -s -I yahoo.com | grep Server
Server: YTS/1.20.10
但有些人不发送Server
标头:
$ curl -s -I serverfault.com
HTTP/1.1 200 OK
Cache-Control: public, max-age=41
Content-Length: 129706
Content-Type: text/html; charset=utf-8
Expires: Tue, 27 Mar 2012 13:01:46 GMT
Last-Modified: Tue, 27 Mar 2012 13:00:46 GMT
Vary: *
Date: Tue, 27 Mar 2012 13:01:04 GMT
$ curl -s -I www.facebook.com
HTTP/1.1 302 Found
Location: http://www.facebook.com/common/browser.php
P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
Set-Cookie: datr=sbpxT_PpXR9FO5mMTy8pCTjD; expires=Thu, 27-Mar-2014 13:03:45 GMT; path=/; domain=.facebook.com; httponly
Content-Type: text/html; charset=utf-8
X-FB-Debug: VJycxKwQ9bAV0Z/n6jfN1WSFx4pqj2337c1jc+pPlE0=
X-Cnection: close
Content-Length: 0
Date: Tue, 27 Mar 2012 13:03:45 GMT
所有这些都可能在撒谎。Bart的建议nmap
更可能是准确的,但由于他提到的原因而无法产生100%准确的结果。有时甚至没有任何意义,例如,在Google上满足一个HTTP请求所涉及的服务器数量,其Web服务器,搜索服务器,数据库服务器,缓存服务器以及它们运行的任何其他设备都可能正在使用不同的操作系统,您将无所适从。
问Netcraft:该站点在运行什么?
http://uptime.netcraft.com/up/graph?site=google.com返回“服务器:gws”(即Google Web服务器)。