C# 如何检测远程机器的操作系统

C# 如何检测远程机器的操作系统,c#,.net,C#,.net,从基于.net的应用程序中,确定远程计算机上运行的操作系统是windows还是linux的最快方法是什么。如果TTL(生存时间)为254或更少,则它基于unix,如果TTL为128或更少,则它是windows。您熟悉WMI吗。。?试试谷歌搜索。。下面有几个例子。。还有,你到底做了什么尝试或研究了很多链接,谷歌搜索过一次吗,,在一台可以通过什么访问的远程机器上?@KRAZE;自由撰稿人:是的,我做了一些调查,已经找到了你们两个发布的链接。但他们都没有解决这个问题,因为几乎所有人都假设远程机器也在运

从基于.net的应用程序中,确定远程计算机上运行的操作系统是windows还是linux的最快方法是什么。如果TTL(生存时间)为254或更少,则它基于unix,如果TTL为128或更少,则它是windows。

您熟悉WMI吗。。?试试谷歌搜索。。下面有几个例子。。还有,你到底做了什么尝试或研究了很多链接,谷歌搜索过一次吗,,在一台可以通过什么访问的远程机器上?@KRAZE;自由撰稿人:是的,我做了一些调查,已经找到了你们两个发布的链接。但他们都没有解决这个问题,因为几乎所有人都假设远程机器也在运行windows。另外,WMI不是一个可靠的解决方案,因为它的服务并不总是应该在任何地方运行。我只是尝试了一下。对于windows,我得到了128的TTL,而对于Linux(fedora),我得到了64。注释?基于Unix的操作系统从254开始,windwos从128开始,但此值减少了N个,其中N是您的计算机和远程计算机之间的跳数。现在,您的计算机和远程计算机之间有126跳的可能性是什么?有关更精确的信息,请参阅:nmap也是一个开源项目,能够检测远程操作系统。但这不是c#:你缺少TTL,所以它不可靠@Farzan它可以在C#的进程中启动,并对输出进行解析