コード例 #1
0
        internal IPAddress GetIPAddress()
        {
            if (Family == AddressFamily.InterNetworkV6)
            {
                Debug.Assert(Size >= IPv6AddressSize);

                byte[] address = new byte[IPAddressParser.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
            {
                throw new SocketException(SocketError.AddressFamilyNotSupported);
            }
        }
コード例 #2
0
        private static unsafe IPAddress CreateIPv4Address(ReadOnlySpan <byte> socketAddress)
        {
            long address = (long)SocketAddressPal.GetIPv4Address(socketAddress) & 0x0FFFFFFFF;

            return(new IPAddress(address));
        }