随笔 - 249  文章 - 1  评论 - 1207  阅读 - 61万

利用SDF2.3获取Windows Mobile上的IP地址和MAC地址

    OpenNETCFSmart Device Framework为开发者提供了许多开发捷径,其SDF1.x系列提供了完全的源代码,即Full Source,从SDF2.x以来,就不一样了。特别是现在的SDF2.3,已经分为Community Edition、Standard Edition和Professional Edition,对于不同的版本,OpenNETCF对其支持的力度也是不一样的。目前最新的版本是2.3.0.39,于2009年3月31日发布,下载Community Edition是免费的。

    在Windows Mobile设备上,我们可以使用ActiveSync将其和PC机连接,也可以使用Wifi连接AP来上网,那么,我们如何来获得其连接的IP地址和相应的MAC地址呢?SDF2.3可以帮助我们方便地实现。

    首先,新建一个智能设备项目,以VS2008+Windows Mobile 6.0 Professional为例,在新建好的项目中,加入对OpenNETCF和OpenNETCF.net的引用,如下图1所示:

截图02

图1 加入对OpenNETCF的引用

    然后,在Form.cs中,加入对OpenNETCF的引用。

        using OpenNETCF.Net;
        using OpenNETCF.Net.NetworkInformation;

    接着,在需要得到IP和MAC的地方,使用如下方式获得(以显示在listBox上的方式为例)

        foreach (INetworkInterface currentInterface in NetworkInterface.GetAllNetworkInterfaces())
        {
            this.listBox1.Items.Add("Name : " + currentInterface.Name);
            this.listBox1.Items.Add("IP : " + currentInterface.CurrentIpAddress);
            this.listBox1.Items.Add("MAC : " + currentInterface.GetPhysicalAddress().ToString());
            this.listBox1.Items.Add(string.Empty);
        }

    最后,我们就可以得到对应的地址了。以下是在我的Cingular8125(WM6.0)上得到的结果:

Screen02 截图01

图2 测试结果

    可以看到,第一个是手机的Wifi模块分配到的IP地址和本身的MAC地址,第二个是手机通过ActiveSync和PC机进行通信的RNDIS(Remote NDIS)IP地址和MAC地址,有关这个方面的资料,可以参考Jake Lin的两篇Blog:

 

    最后附上源代码IPAddressSample.rar,希望对开发爱好者有用。       

posted on   施炯  阅读(4243)  评论(6编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2010年2月 >
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 1 2 3 4 5 6
7 8 9 10 11 12 13

点击右上角即可分享
微信分享提示