📜  本机查询 (1)

📅  最后修改于: 2023-12-03 15:10:40.223000             🧑  作者: Mango

本机查询

本机查询是指查询当前计算机的相关信息,可用于程序开发和维护。本文将介绍如何使用不同编程语言实现本机查询,包括查询操作系统、硬件信息和网络状态等。

查询操作系统
Python

在Python中,可使用platform模块来获取操作系统相关信息,如下所示:

import platform

system_info = platform.uname()
print(system_info.system)
print(system_info.release)
print(system_info.version)

其中,platform.uname()返回一个包含系统信息的元组,包括systemnodereleaseversionmachine等五个属性。

Java

在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#

在C#中,可以使用Environment类来获取操作系统相关信息,如下所示:

Console.WriteLine(Environment.OSVersion.Platform);
Console.WriteLine(Environment.OSVersion.VersionString);
Console.WriteLine(Environment.Is64BitOperatingSystem);
查询硬件信息
Python

在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

在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#

在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

在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

在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#

在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。

以上就是介绍如何使用不同编程语言实现本机查询的内容,包括查询操作系统、硬件信息和网络状态等。