![获取有关站点正在运行的操作系统的信息](https://linux22.com/image/603099/%E8%8E%B7%E5%8F%96%E6%9C%89%E5%85%B3%E7%AB%99%E7%82%B9%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E7%9A%84%E4%BF%A1%E6%81%AF.png)
有没有办法获取网站所运行操作系统的信息?
我需要找到服务器安装了 Linux 的站点。
我所问的问题通过 Google 可以实现吗?
多谢
答案1
nmap -O
可以为您提供一些信息...但您最近访问的任何主要生产网站都有可能位于硬件或软件负载平衡器后面,因此结果可能无效。
您能否提供有关您正在尝试做的事情的更多细节或背景信息?
答案2
嗯,有几种方法可以找到这个信息。
如果您想具体了解它正在运行哪个版本的 Linux 操作系统,那么您需要使用带有 -O 选项的 nmap 执行主机扫描,但主机/端口扫描是任何人都可以检测到的,我认为您不会想在数据中心的几台机器上运行端口扫描。
另一种方法是利用操作系统默认TTL的功能。
因此,每个操作系统都有自己的 TTL,当您 ping 它们时,它们会回复其 TTL 值。
当你 ping 一台机器时,你会看到这样的输出
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=0 ttl=48 time=396.306 ms
64 bytes from xxx.xxx.xxx.xxx: icmp_seq=1 ttl=48 time=324.736 ms
只需查看 TTL 值。这里是 48。现在运行跟踪路由可以轻松告诉您您和服务器之间有 16 个跳数。只需将两个值相加即可。这意味着服务器 TTL 为 64,这是大多数 Linux 机器的默认 TTL。
您可以检查不同操作系统的默认 TTL这里。
因此,您可以简单地编写一个小脚本,它可以 ping 一个服务器,检查 TTL,然后跟踪路由以查看 HOPS 的数量,然后将这些值相加。
nmap 方法需要花费一些时间,但在大多数情况下,给出的信息都是准确的,但在某些情况下,nmap 会被阻止,您将无法 ping 操作系统
ping 方法会非常快,但数据会稍微不完美。大多数服务器上的 ping 通常是打开的。
希望这有帮助。
答案3
我知道一种可行且简单但并非总是有效的方法。该方法是使用不存在的页面。因此网站将返回 404。如果是 apache,则在页脚中(如果站点操作员未禁用),它将显示 apache 版本和操作系统。如果是 IIS,则 404 将显示 IIS 式错误消息(同样,如果站点操作员未禁用它)。
答案4
Netcraft 证实了这一点。
或者那个 meme 仅仅是一个 /. 的东西?
Netcraft 网站上有一个可以解决您的问题的工具。