📅  最后修改于: 2023-12-03 15:10:40.223000             🧑  作者: Mango
本机查询是指查询当前计算机的相关信息,可用于程序开发和维护。本文将介绍如何使用不同编程语言实现本机查询,包括查询操作系统、硬件信息和网络状态等。
在Python中,可使用platform
模块来获取操作系统相关信息,如下所示:
import platform
system_info = platform.uname()
print(system_info.system)
print(system_info.release)
print(system_info.version)
其中,platform.uname()
返回一个包含系统信息的元组,包括system
、node
、release
、version
和machine
等五个属性。
在Java中,可以使用System
类中的getProperty()
方法来获取操作系统相关信息,如下所示:
System.out.println(System.getProperty("os.name"));
System.out.println(System.getProperty("os.version"));
System.out.println(System.getProperty("os.arch"));
在C#中,可以使用Environment
类来获取操作系统相关信息,如下所示:
Console.WriteLine(Environment.OSVersion.Platform);
Console.WriteLine(Environment.OSVersion.VersionString);
Console.WriteLine(Environment.Is64BitOperatingSystem);
在Python中,可以使用psutil
模块来获取硬件相关信息,如下所示:
import psutil
print(psutil.cpu_count())
print(psutil.virtual_memory().total)
print(psutil.disk_usage('/').total)
其中,psutil.cpu_count()
返回CPU核心数,psutil.virtual_memory().total
返回系统总内存,psutil.disk_usage('/').total
返回根目录总大小。
在Java中,可以使用Runtime
类来获取硬件相关信息,如下所示:
System.out.println(Runtime.getRuntime().availableProcessors());
System.out.println(Runtime.getRuntime().totalMemory());
System.out.println(new File("/").getTotalSpace());
其中,Runtime.getRuntime().availableProcessors()
返回CPU核心数,Runtime.getRuntime().totalMemory()
返回JVM总内存,new File("/").getTotalSpace()
返回根目录总大小。
在C#中,可以使用System.Management
命名空间下的ManagementObjectSearcher
类和ManagementObject
类来获取硬件相关信息,如下所示:
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
ManagementObjectCollection processors = searcher.Get();
foreach (var processor in processors)
{
Console.WriteLine(Convert.ToInt32(processor["NumberOfCores"]));
}
Console.WriteLine(new ManagementObject("Win32_ComputerSystem.Name=\"COMPUTERNAME\"")["TotalPhysicalMemory"]);
Console.WriteLine(new DriveInfo("C:").TotalSize);
在Python中,可以使用psutil
模块来获取网络相关信息,如下所示:
import psutil
print(psutil.net_io_counters().bytes_sent)
print(psutil.net_io_counters().bytes_recv)
其中,psutil.net_io_counters().bytes_sent
返回发送的字节数,psutil.net_io_counters().bytes_recv
返回接收的字节数。
在Java中,可以使用NetworkInterface
类和InterfaceAddress
类来获取网络相关信息,如下所示:
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements())
{
NetworkInterface ni = interfaces.nextElement();
System.out.println(ni.getName());
System.out.println(ni.getHardwareAddress());
System.out.println(ni.isUp());
List<InterfaceAddress> addresses = ni.getInterfaceAddresses();
for (InterfaceAddress address : addresses)
{
System.out.println(address.getAddress().getHostAddress());
System.out.println(address.getNetworkPrefixLength());
}
}
其中,ni.getName()
返回网络接口名,ni.getHardwareAddress()
返回MAC地址,ni.isUp()
返回网络状态是否为UP。
在C#中,可以使用System.Net.NetworkInformation
命名空间下的NetworkInterface
类来获取网络相关信息,如下所示:
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (var ni in interfaces)
{
Console.WriteLine(ni.Name);
Console.WriteLine(Encoding.Default.GetString(ni.GetPhysicalAddress().GetAddressBytes()));
Console.WriteLine(ni.IsUp);
foreach (var ip in ni.GetIPProperties().UnicastAddresses)
{
Console.WriteLine(ip.Address);
Console.WriteLine(ip.PrefixLength);
}
}
其中,ni.Name
返回网络接口名,Encoding.Default.GetString(ni.GetPhysicalAddress().GetAddressBytes())
返回MAC地址,ni.IsUp
返回网络状态是否为UP。
以上就是介绍如何使用不同编程语言实现本机查询的内容,包括查询操作系统、硬件信息和网络状态等。