System.Net.Internals.SocketAddress.GetIPAddress C# (CSharp) Method

GetIPAddress() private method

private GetIPAddress ( ) : IPAddress
return IPAddress
        internal IPAddress GetIPAddress()
        {
            if (Family == AddressFamily.InterNetworkV6)
            {
                Debug.Assert(Size >= IPv6AddressSize);

                byte[] address = new byte[IPAddressParserStatics.IPv6AddressBytes];
                uint scope;
                SocketAddressPal.GetIPv6Address(Buffer, address, out scope);

                return new IPAddress(address, (long)scope);
            }
            else if (Family == AddressFamily.InterNetwork)
            {
                Debug.Assert(Size >= IPv4AddressSize);
                long address = (long)SocketAddressPal.GetIPv4Address(Buffer) & 0x0FFFFFFFF;
                return new IPAddress(address);
            }
            else
            {
#if SYSTEM_NET_PRIMITIVES_DLL
                throw new SocketException(SocketError.AddressFamilyNotSupported);
#else
                throw new SocketException((int)SocketError.AddressFamilyNotSupported);
#endif
            }
        }

Usage Example

            internal IPAddress MarshalIPAddress()
            {
                // Determine the address family used to create the IPAddress.
                AddressFamily family = (addressLength > Internals.SocketAddress.IPv4AddressSize)
                    ? AddressFamily.InterNetworkV6 : AddressFamily.InterNetwork;
                Internals.SocketAddress sockAddress = new Internals.SocketAddress(family, addressLength);
                Marshal.Copy(address, sockAddress.Buffer, 0, addressLength);

                return sockAddress.GetIPAddress();
            }
All Usage Examples Of System.Net.Internals.SocketAddress::GetIPAddress