检测远程计算机是 Windows 还是 Linux OS
Detect if a remote computer is Windows or Linux OS
我有远程计算机的 IP 地址和服务器名称。如果计算机是 运行 Windows,我可以查询 WMI
来获取 OS version
,但是有没有办法查询远程计算机并获取 OS version
如果电脑不是运行 Windows (Linux
, Solaris
)?
从您的 Windows PC 了解远程 PC 的 Windows 版本是什么,您可以 运行 windows 命令 "systeminfo /s [PCname]" 或者您可以使用
我想 Active Directory
会给我我需要的东西。这是我到目前为止所拥有的。看起来很有前途。
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
ComputerPrincipal computer = ComputerPrincipal.FindByIdentity(ctx, "mylinuxservername");
if (computer != null)
{
var unObject = computer.GetUnderlyingObject() as System.DirectoryServices.DirectoryEntry;
if(null != unObject)
{
var osProperty = unObject.Properties.Cast<System.DirectoryServices.PropertyValueCollection>().Where(p => p.PropertyName == "operatingSystem");
if(null != osProperty.FirstOrDefault())
{
Console.WriteLine(osProperty.FirstOrDefault().Value);
}
}
}
}
有很多方法可以检测远程计算机正在使用 Windows OS 或 Linux 。信息收集包括渗透测试部分。
基本上在扫描远程计算机上的端口数和这些端口上的 运行 服务后,我们可以确定远程计算机上安装了什么 OS 。
还有一种方法可以检查它,您可以使用 SNMP 协议 来达到这个目的。
user@host $ snmpget -v2c -c <community string> <computer> <mib / oid >
当量
user@host $ snmpget -v2c -c public x.x.x.x sysDescr.0
将为您提供与远程计算机相关的信息。
默认情况下 是 public .
我有远程计算机的 IP 地址和服务器名称。如果计算机是 运行 Windows,我可以查询 WMI
来获取 OS version
,但是有没有办法查询远程计算机并获取 OS version
如果电脑不是运行 Windows (Linux
, Solaris
)?
从您的 Windows PC 了解远程 PC 的 Windows 版本是什么,您可以 运行 windows 命令 "systeminfo /s [PCname]" 或者您可以使用
我想 Active Directory
会给我我需要的东西。这是我到目前为止所拥有的。看起来很有前途。
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
ComputerPrincipal computer = ComputerPrincipal.FindByIdentity(ctx, "mylinuxservername");
if (computer != null)
{
var unObject = computer.GetUnderlyingObject() as System.DirectoryServices.DirectoryEntry;
if(null != unObject)
{
var osProperty = unObject.Properties.Cast<System.DirectoryServices.PropertyValueCollection>().Where(p => p.PropertyName == "operatingSystem");
if(null != osProperty.FirstOrDefault())
{
Console.WriteLine(osProperty.FirstOrDefault().Value);
}
}
}
}
有很多方法可以检测远程计算机正在使用 Windows OS 或 Linux 。信息收集包括渗透测试部分。 基本上在扫描远程计算机上的端口数和这些端口上的 运行 服务后,我们可以确定远程计算机上安装了什么 OS 。 还有一种方法可以检查它,您可以使用 SNMP 协议 来达到这个目的。
user@host $ snmpget -v2c -c <community string> <computer> <mib / oid >
当量
user@host $ snmpget -v2c -c public x.x.x.x sysDescr.0
将为您提供与远程计算机相关的信息。
默认情况下