“.NET 4.0 网络开发入门之旅系列文章”—— IP 知多少?(中)

“.NET 4.0 网络开发入门之旅系列文章”

 IP 知多少?(中)

 

“.NET 4.0 网络开发入门之旅系列文章”—— IP 知多少?(上)

 

 

3.   怎样知道特定计算机的IP 地址?

   

.NET 基类库中有一个Dns 静态类,可以完成这个工作(图2 ):

 

 

2

 

         Dns 提供了一堆的静态方法完成各种常用的IP 地址查询功能。

         比如,以下代码获取本地主机名称:



         String LocalhostName = Dns.GetHostName();



         以下代码获取微软公司主机的IP 地址:



         IPAddress[] ips = Dns.GetHostAddresses("www.microsoft.com") ;



         将上述两句“组合起来”,我们就可以获取本地主机的所有IP 地址:



         IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());



         如果希望获取更详细的信息,可以使用Dns 的以下方法:



         public static IPHostEntry GetHostEntry( string hostNameOrAddress )



         上述代码中的IPHostEntry.NET 基类库中的另一个类(图3 ),可以看到通过它不仅可以获取指定主机的所有IPv4IPv6 地址,还可以知道它的主机名(HostName )和别名(Aliases )。

 

 

3

 

         以下是使用GetHostEntry 直接访问微软网站得到的主机信息:

 

主机名称:lb2.www.ms.akadns.net

主机www.microsoft.com 拥有以下IP 地址:

    AddressFamily:InterNetwork    Address:207.46.170.10

    AddressFamily:InterNetwork    Address:65.55.21.250

    AddressFamily:InterNetwork    Address:207.46.170.123

    AddressFamily:InterNetwork    Address:65.55.12.249

 

注意:

         Dns 类中有些方法被废弃(Obsolete )了,使用它时注意一下编译器给出的警告信息。

 

 

    为了方便起见,我们将获取本地主机IPv4 地址的功能封装为一个静态方法,并将其放入到一个AddressHelper 静态类中:

 

 public static class AddressHelper

 {

        public static IPAddress[] GetLocalhostIPv4Addresses()

        {

            String LocalhostName = Dns.GetHostName();

            IPHostEntry host = Dns.GetHostEntry(LocalhostName);

            List<IPAddress> addresses=new List<IPAddress>();

            foreach (IPAddress ip in host.AddressList)

            {

                if (ip.AddressFamily == AddressFamily.InterNetwork)

                    addresses.Add(ip);

            }

            return addresses.ToArray();

        }

        // ……

}

 

         再把上述这个类添加到一个MyNetworkLibrary 类库中,此类库将用于封装一些常用的功能,后续文章中的示例将直接使用它。

 

==============================

 

点击以下链接阅读本文最后一个部分:

 

“.NET 4.0 网络开发入门之旅系列文章”—— IP 知多少?(下)

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值