/ 技术

C#获取指定网卡的ip地址

最近几天都在玩游戏,没怎么编程,感觉好空虚啊!主要是之前在Android上建立wifi热点出现了一些问题,难以进展下去,于是便耽搁了,今天决定先跳过那个问题,Android手机之间的传输先暂时不考虑,先做一下Android与PC之间的数据传输。

刚刚主要完成了这么一件事情,根据指定的网卡获取其ip,以便之后的socket使用。

会出现这个问题是因为我是利用Win7的netsh功能建立的虚拟网卡,它与其它网卡可以同时存在,这就意味着这台主机可能拥有多个ip地址,然而我们需要的只是我们建立的虚拟网卡的那个ip地址,实现方法如下:

NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();//获取本机所有网卡对象
foreach (NetworkInterface adapter in adapters)
{
    if (adapter.Description.Contains("Virtual"))//枚举条件:描述中包含"Virtual"
    {
        IPInterfaceProperties ipProperties = adapter.GetIPProperties();//获取IP配置
        UnicastIPAddressInformationCollection ipCollection = ipProperties.UnicastAddresses;//获取单播地址集
        foreach (UnicastIPAddressInformation ip in ipCollection)
        {
            if (ip.Address.AddressFamily == AddressFamily.InterNetwork)//只要ipv4的
                ipAddress = ip.Address;//获取ip
        }
    }
}

任务完成!下面开始学习socket通信。

by 邓斌HADB of 好易思特HAOest
2012-7-28 中午于成都