技术, C#

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 中午于成都

您已成功订阅 HADB.ME
真棒!下一步,完成结账以便解锁 HADB.ME
欢迎回来!您已登录成功。
登录失败,请重试。
操作成功!您的账户已全面激活,现在您有所有内容的权限了。
错误!Stripe 结账失败。
成功!您的账单信息已更新。
错误!账单信息更新失败。