笔记10:IPAddress 类、IPInterfaceProperties 类、IPGlobalProperties 类




一、IPAddress 类

         IPAddress类在System.NET命名空间中,它只能单纯地用来保存一般地址信息。
         System.Net.NetworkInformation命名空间中还有几种IP地址有关的类,用来保存特定类型地址的相关信息,如:
         相关类
            IPAddressCollection          保存一组IPAddress类
            IPAddressInformation              提供网络接口地址的相关信息
            IPAddressInformationCollection    保存一组IPAddressInformation 类
            GatewayIPAddressInformation               表示网络网关的Ip地址
            GatewayIPAddressInformationCollection     保存一组网络网关的ip地址
            MulticastIPAddressInformation                   提供网络接口多播地址的相关信息
            MulticastIPAddressInformationCollection         保存一组多播地址信息的类
            UnicastIPAddressInformation              提供网络接口单点传送地址的相关信息
            UnicastIPAddressInformationCollection    保存一组单点传送信息的类

           上面类实体对象可由IPInterfaceProperties对象(Networklnterface.GetIPProperties)的属性成员取得。

           Public MustOverride Function GetIPProperties As IPInterfaceProperties
           对于IPv4及IPv6还可用GetIPv4Properties与GetIPv6Properties类。
           要取得这两个类,可用IPInterfaceProperties对象的GetIPv4Properties()与GetIPv6Properties()方法:
           Public MustOverride Function GetIPv4Properties As IPv4InterfaceProperties
           Public MustOverride Function GetIPv6Properties As IPv6InterfaceProperties



二、IPInterfaceProperties 类
         该类提供IPv4或IPv6的网络接口相关信息。
         IPInterfaceProperties是抽象类,可直接用Networklnterface的GetIPProperties()方法所返回的实体对象进行操作,其属性可取得因特网通信协议的相关信息。
          属性:
             AnycastAddresses        获取分配给此接口的任意广播IP地址。
             DhcpServerAddresses     获取此接口的动态主机配置协议(DHCP)服务器的地址。
             DnsAddresses       获取此接口的域名系统(DNS)服务器的地址。
             DnsSuffix          获取与此接口关联的域名系统 (DNS) 后缀。
             GatewayAddresses    获取此接口的IPv4网关地址。
             IsDnsEnabled        获取一个Boolean值,该值指示是否将NetBt配置为对此接口使用DNS名称解析。
             IsDynamicDnsEnabled   获取Boolean值,该值指示此接口是否被配置为自动向域名系统(DNS)注册其IP地址信息。
             MulticastAddresses     获取分配给此接口的多路广播地址。
             UnicastAddresses       获取分配给此接口的单播地址。
             WinsServersAddresses   获取Windows Internet名称服务(WINS 服务器的地址。
                                                              
Imports System.Net.NetworkInformation
Imports System.Net


Public Class Form1
    Private Sub btnInterface_Click(sender As Object, e As EventArgs) Handles btnInterface.Click
        Dim adapter As NetworkInterface
        Dim adapters As NetworkInterface()
        Dim strInfo As String = ""
        Dim intNum As Int32


        adapters = NetworkInterface.GetAllNetworkInterfaces


        For Each adapter In adapters
            intNum += 1
            strInfo &= "网络接口  " & intNum.ToString & vbCrLf
            strInfo &= "--------------------" & vbCrLf


            Dim ipInfo As IPInterfaceProperties = adapter.GetIPProperties '接口IP属性
            strInfo &= "是否DNS解析:" & ipInfo.IsDnsEnabled.ToString & vbCrLf
            strInfo &= "是否动态IP:" & ipInfo.IsDynamicDnsEnabled.ToString & vbCrLf
            strInfo &= "DNS后缀:" & ipInfo.DnsSuffix & vbCrLf


            Dim addrs As IPAddressCollection = ipInfo.DnsAddresses
            For Each addr As IPAddress In addrs
                strInfo &= "DNS地址:" & addr.MapToIPv4.ToString & vbCrLf 'IP地址转为标准表示法
            Next


            Dim casts As IPAddressInformationCollection = ipInfo.AnycastAddresses
            For Each cast As IPAddressInformation In casts
                strInfo &= "任意广播地址:" & cast.Address.ToString() & vbCrLf
                strInfo &= "在DNS中是否有效:" & cast.IsDnsEligible.ToString & vbCrLf
                strInfo &= "是否瞬态(群集):" & cast.IsTransient.ToString & vbCrLf
            Next


            Dim gates As GatewayIPAddressInformationCollection = ipInfo.GatewayAddresses
            For Each gate As GatewayIPAddressInformation In gates
                strInfo &= "网关地址:" & gate.Address.ToString() & vbCrLf
            Next


            Dim mults As MulticastIPAddressInformationCollection = ipInfo.MulticastAddresses
            For Each mult As MulticastIPAddressInformation In mults
                strInfo &= "多播地址:" & mult.Address.ToString() & vbCrLf
            Next


            Dim uncs As UnicastIPAddressInformationCollection = ipInfo.UnicastAddresses
            For Each unc As UnicastIPAddressInformation In uncs
                strInfo &= "单点传送地址:" & unc.Address.ToString() & vbCrLf
            Next


            Dim wins As IPAddressCollection = ipInfo.WinsServersAddresses
            For Each win As IPAddress In wins
                strInfo &= "wins服务器:" & win.ToString() & vbCrLf
            Next


            strInfo &= vbCrLf & vbCrLf
        Next


            txtInterface.Text = strInfo
    End Sub
End Class




三、IPGlobalProperties 类
         本地计算机的网络连接的信息。
         IPGlobalProperties为抽象类,可通过NetworkInterface取得IPGlobalProperties对象,或直接引用其GetIPGIobalProperties()方法取得对象:
            Public Shared Function GetIPGlobalProperties As IPGlobalProperties
例:
Imports System.Net.NetworkInformation
Dim a As IPGlobalProperties
a.GetIPv4GlobalStatistics
         属性:
            DhcpScopeName  获取动态主机配置协议 (DHCP) 范围名
            DomainName     获取在其中注册本地计算机的域。
            HostName     获取本地计算机的主机名。
            IsWinsProxy  获取 Boolean 值,指定本地是否作为 Windows Internet 名称服务 (WINS) 代理。
            NodeType     获取本地计算机的网络基本输入/输出系统 (NetBIOS) 节点类型。
         方法:
             GetIPv4GlobalStatistics提供IPv4统计数据。
             GetIPv6GlobalStatistics提供IPv6统计数据。

                                                           
Imports System.Net.NetworkInformation
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim a As IPGlobalProperties = IPGlobalProperties.GetIPGlobalProperties
        Dim b As IPGlobalStatistics = a.GetIPv4GlobalStatistics
        Dim s As String = ""


        s &= "主机名:" & a.HostName & vbCrLf
        s &= "DHCP范围:" & a.DhcpScopeName.ToString & vbCrLf
        s &= "所在域:" & a.DomainName.ToString & vbCrLf
        s &= "是否代理:" & a.IsWinsProxy.ToString & vbCrLf
        s &= "节点类型:" & a.NodeType.ToString & vbCrLf
        s &= "收到数据包:" & b.ReceivedPackets.ToString & vbCrLf
        s &= "转发包:" & b.ReceivedPacketsForwarded.ToString & vbCrLf
        s &= "传送数据包:" & b.ReceivedPacketsDelivered.ToString & vbCrLf
        s &= "丢弃数据包:" & b.ReceivedPacketsDiscarded.ToString & vbCrLf


        TextBox1.Text = s
    End Sub
End Class


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值