C# LocalAdapterInformation

As I continue to enhance some of my exisiting utilities (and port them to C# ) I found myself working on a utilitiy that determines the Local Network Adapter Information.

public void RetrieveLocalAdapterInformation( TextBox text )
        {
            NetworkInterface[] interfaces;   // NIC
            IPInterfaceProperties properties;
            PhysicalAddress address;

            text.Clear ();

            try
            {
                if ( NetworkInterface.GetIsNetworkAvailable () )
                {
                    interfaces = NetworkInterface.GetAllNetworkInterfaces ();
                    if ( interfaces.GetLength ( 0 ) > 0 )
                    {
                        foreach ( NetworkInterface netInterface in interfaces )
                        {
                            properties = netInterface.GetIPProperties ();

                            text.AppendText ( netInterface.Name + Environment.NewLine );
                            text.AppendText ( "Id: " + netInterface.Id.ToString () + Environment.NewLine );
                            address = netInterface.GetPhysicalAddress ();
                            text.AppendText ( "MAC Address: " +
                                ( address.ToString () == String.Empty ? "None" : address.ToString () ) +
                                Environment.NewLine );

                            foreach ( IPAddressInformation ipinfo in properties.UnicastAddresses )
                            {
                                text.AppendText ( "IP: " + ipinfo.Address.ToString () +
                                    Environment.NewLine );
                            }

                            foreach ( IPAddress ip in properties.DhcpServerAddresses )
                            {
                                text.AppendText ( "DHCP Server: " + ip.ToString () +
                                    Environment.NewLine );
                            }

                            foreach ( IPAddress ip in properties.DnsAddresses )
                            {
                                text.AppendText ( "DNS Server: " + ip.ToString () + Environment.NewLine );
                            }

                            text.AppendText ( "Type: " + netInterface.NetworkInterfaceType.ToString () + Environment.NewLine );
                            text.AppendText ( "Operational Status: " + netInterface.OperationalStatus.ToString () + Environment.NewLine );
                            text.AppendText ( "Speed: " + netInterface.Speed.ToString ( "N" ) + " bytes" + Environment.NewLine );

                            // XP Only
                            System.OperatingSystem osInfo = System.Environment.OSVersion;
                            if ( ( osInfo.Version.Major == 5 ) & ( osInfo.Version.Minor > 0 ) )
                            {
                                text.AppendText ( "Receive Only: " +
                                    netInterface.IsReceiveOnly.ToString () +
                                    Environment.NewLine );
                                text.AppendText ( "Support Multicast: " +
                                    netInterface.SupportsMulticast.ToString () +
                                    Environment.NewLine );
                            }

                            text.AppendText ( "Support IPv4: " +
                                netInterface.Supports ( NetworkInterfaceComponent.IPv4 ).ToString () +
                                Environment.NewLine );
                            text.AppendText ( "Support IPv6: " +
                                netInterface.Supports ( NetworkInterfaceComponent.IPv6 ).ToString () +
                                Environment.NewLine );
                            text.AppendText ( "DnsSuffix: " +
                                properties.DnsSuffix.ToString () + Environment.NewLine );

                            text.AppendText ( Environment.NewLine );
                        }
                    }
                }
            }
            catch ( Exception e )
            {
                MessageBox.Show ( e.Message, e.Source, MessageBoxButtons.OK,
                    MessageBoxIcon.Error );
            }
        }