我如何使用System.Net.NetworkInformation.GatewayIPAddressInformation类?

时间:2010-10-01 14:39:06

标签: c# .net asp.net asp.net-mvc vb.net

我尝试了书中的每一个技巧,创建了一个新对象,实例化它(即使它说我不能)并且只是尝试创建一个使用它的引用,然后还试图调用里面的.Address值它在使用它时就像我会使用共享成员(没有实例化)并且没有任何工作,msdn示例/帮助是无用的...我甚至尝试继承它并使用它,没有一个工作,我相信我是遗失了什么,有人能给我一些代码示例吗?这里有msdn文档给你一个概述...

http://msdn.microsoft.com/en-us/library/system.net.networkinformation.gatewayipaddressinformation.aspx

虽然我喜欢vb.net,但我可以在c#和vb.net中阅读和编码,所以要么会好的。

感谢:)

抛开一边:如果有人想知道为什么,我只是试图从PC上获取我的路由器名称/标签,如下所示...... How to get Router Name & IP as shown in Windows Network Tab? (in Code)

1 个答案:

答案 0 :(得分:8)

来自MSDN

  • 简而言之,您致电NetworkInterface.GetAllNetworkInterfaces()以获取一组适配器。
  • 在其中一个适配器上,获取adapter.GetIPProperties().GatewayAddresses
  • GatewayAddresses的每个元素都是GatewayIPAddressInformation

public static void DisplayGatewayAddresses()
{
    Console.WriteLine("Gateways");
    NetworkInterface[] adapters  = NetworkInterface.GetAllNetworkInterfaces();
    foreach (NetworkInterface adapter in adapters)
    {
        IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
        GatewayIPAddressInformationCollection addresses = adapterProperties.GatewayAddresses;
        if (addresses.Count >0)
        {
            Console.WriteLine(adapter.Description);
            foreach (GatewayIPAddressInformation address in addresses)
            {
                Console.WriteLine("  Gateway Address ......................... : {0}", 
                    address.Address.ToString());
            }
            Console.WriteLine();
        }
    }
}