如何ping服务器来发现它正在运行的操作系统或其他软件?

我偶尔会看到像netcraft这样的网站,我很好奇,如果有一个不显眼的方式来ping服务器,看看它正在运行的公共软件? 像netcraft这样的网站使用一些成熟的启发式来推断他们的数据,或者某些types的(非滥用)请求会导致直截了当的答案?

NMAP允许您执行操作系统检测和服务标识。 我不知道netcraft是怎么做到的,而且使用nmap可以很快地摆脱“不显眼的”类别。 但是你可以在内部进行testing

我想NetCraft使用Web服务器返回的Server:header。 不需要特殊的工具来做到这一点

$ curl -I http://www.microsoft.com | grep "Server:" Server: Microsoft-IIS/7.0 $ curl -I http://www.apache.org | grep "Server:" Server: Apache/2.2.9 (Unix) 

它基于你获取的数据包中的ICMP指纹(如果你拿回来)。 不同的IP协议栈对回声的回应是不同的,这就给了你一个提示内容的提示。 看看这个 。