【问题标题】:How to get multiple network interface cards data如何获取多个网卡数据
【发布时间】:2015-12-27 01:25:43
【问题描述】:

我有代码,可以找到我的网卡 IP 地址、IP 子网、网关、Mac 和网卡名称(描述)。但问题是,我的 PC 上有多个 NIC 卡和 WiFi。而这个程序而不是 4 个 NIC 卡只显示了一个主卡。 如何解决这个问题?

public  void NIC_data()
    {
        ManagementObjectSearcher query = new
        ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");
        ManagementObjectCollection queryCollection = query.Get();
        foreach (ManagementObject mo in queryCollection)
        {
            string[] addresses = (string[])mo["IPAddress"];
            string[] subnets = (string[])mo["IPSubnet"];
            string[] defaultgateways = (string[])mo["DefaultIPGateway"];
            textBox1.Text = string.Format("Network Card: {0}", mo["Description"]);
            textBox2.Text = string.Format(" MAC Address: {0}", mo["MACAddress"]);
            foreach (string ipaddress in addresses)
            {
                textBox3.Text = string.Format(" IP Address: {0}", ipaddress);
            }
            foreach (string subnet in subnets)
            {
                textBox4.Text = string.Format(" Subnet Mask: {0}", subnet);
            }
            foreach (string defaultgateway in defaultgateways)
            {
                textBox5.Text = string.Format(" Gateway: {0}", defaultgateway);
            }
        }

【问题讨论】:

  • 如果您将查询更改为 SELECT * FROM Win32_NetworkAdapterConfiguration 是否获得所有网络适配器配置?
  • @Hans ,在简单的列表中,我得到了所有卡片!
  • 不是每次循环更新时都会替换文本框中的文本吗?因此,您在任何时候都只会显示每个类别中的一个,因为它会覆盖前一个。

标签: c# nic


【解决方案1】:

您只需将循环的最后一个值分配给文本框,例如 textBox3.Text = ....

附加到textBox3.Text += ... 或使用组合框。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2018-09-22
    相关资源
    最近更新 更多