IPAddress 類別

定義

提供網際網路協定(IP)位址。

public ref class IPAddress
public ref class IPAddress : IParsable<System::Net::IPAddress ^>, ISpanFormattable, ISpanParsable<System::Net::IPAddress ^>, IUtf8SpanFormattable, IUtf8SpanParsable<System::Net::IPAddress ^>
public ref class IPAddress : IParsable<System::Net::IPAddress ^>, ISpanFormattable, ISpanParsable<System::Net::IPAddress ^>, IUtf8SpanFormattable
public class IPAddress
public class IPAddress : IParsable<System.Net.IPAddress>, ISpanFormattable, ISpanParsable<System.Net.IPAddress>, IUtf8SpanFormattable, IUtf8SpanParsable<System.Net.IPAddress>
public class IPAddress : IParsable<System.Net.IPAddress>, ISpanFormattable, ISpanParsable<System.Net.IPAddress>, IUtf8SpanFormattable
[System.Serializable]
public class IPAddress
type IPAddress = class
type IPAddress = class
    interface ISpanFormattable
    interface IFormattable
    interface ISpanParsable<IPAddress>
    interface IParsable<IPAddress>
    interface IUtf8SpanFormattable
    interface IUtf8SpanParsable<IPAddress>
type IPAddress = class
    interface ISpanFormattable
    interface IFormattable
    interface ISpanParsable<IPAddress>
    interface IParsable<IPAddress>
    interface IUtf8SpanFormattable
[<System.Serializable>]
type IPAddress = class
Public Class IPAddress
Public Class IPAddress
Implements IParsable(Of IPAddress), ISpanFormattable, ISpanParsable(Of IPAddress), IUtf8SpanFormattable, IUtf8SpanParsable(Of IPAddress)
Public Class IPAddress
Implements IParsable(Of IPAddress), ISpanFormattable, ISpanParsable(Of IPAddress), IUtf8SpanFormattable
繼承
IPAddress
屬性
實作

範例

以下程式碼範例說明如何查詢伺服器以取得家族位址及其支援的 IP 位址。


// This program shows how to use the IPAddress class to obtain a server
// IP addressess and related information.

using System;
using System.Net;
using System.Net.Sockets;
using System.Text.RegularExpressions;

namespace Mssc.Services.ConnectionManagement
{

  class TestIPAddress
  {

    /**
      * The IPAddresses method obtains the selected server IP address information.
      * It then displays the type of address family supported by the server and its
      * IP address in standard and byte format.
      **/
    private static void IPAddresses(string server)
    {
      try
      {
        System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding();

        // Get server related information.
        IPHostEntry heserver = Dns.GetHostEntry(server);

        // Loop on the AddressList
        foreach (IPAddress curAdd in heserver.AddressList)
        {


          // Display the type of address family supported by the server. If the
          // server is IPv6-enabled this value is: InterNetworkV6. If the server
          // is also IPv4-enabled there will be an additional value of InterNetwork.
          Console.WriteLine("AddressFamily: " + curAdd.AddressFamily.ToString());

          // Display the ScopeId property in case of IPV6 addresses.
          if(curAdd.AddressFamily.ToString() == ProtocolFamily.InterNetworkV6.ToString())
            Console.WriteLine("Scope Id: " + curAdd.ScopeId.ToString());


          // Display the server IP address in the standard format. In
          // IPv4 the format will be dotted-quad notation, in IPv6 it will be
          // in in colon-hexadecimal notation.
          Console.WriteLine("Address: " + curAdd.ToString());

          // Display the server IP address in byte format.
          Console.Write("AddressBytes: ");

          Byte[] bytes = curAdd.GetAddressBytes();
          for (int i = 0; i < bytes.Length; i++)
          {
            Console.Write(bytes[i]);
          }

          Console.WriteLine("\r\n");
        }
      }
      catch (Exception e)
      {
        Console.WriteLine("[DoResolve] Exception: " + e.ToString());
      }
    }

    // This IPAddressAdditionalInfo displays additional server address information.
    private static void IPAddressAdditionalInfo()
    {
      try
      {
        // Display the flags that show if the server supports IPv4 or IPv6
        // address schemas.
        Console.WriteLine("\r\nSupportsIPv4: " + Socket.SupportsIPv4);
        Console.WriteLine("SupportsIPv6: " + Socket.SupportsIPv6);

        if (Socket.SupportsIPv6)
        {
          // Display the server Any address. This IP address indicates that the server
          // should listen for client activity on all network interfaces.
          Console.WriteLine("\r\nIPv6Any: " + IPAddress.IPv6Any.ToString());

          // Display the server loopback address.
          Console.WriteLine("IPv6Loopback: " + IPAddress.IPv6Loopback.ToString());

          // Used during autoconfiguration first phase.
          Console.WriteLine("IPv6None: " + IPAddress.IPv6None.ToString());

          Console.WriteLine("IsLoopback(IPv6Loopback): " + IPAddress.IsLoopback(IPAddress.IPv6Loopback));
        }
        Console.WriteLine("IsLoopback(Loopback): " + IPAddress.IsLoopback(IPAddress.Loopback));
      }
      catch (Exception e)
      {
        Console.WriteLine("[IPAddresses] Exception: " + e.ToString());
      }
    }

    public static void Main(string[] args)
    {
      string server = null;

      // Define a regular expression to parse user's input.
      // This is a security check. It allows only
      // alphanumeric input string between 2 to 40 character long.
      Regex rex = new Regex(@"^[a-zA-Z]\w{1,39}$");

      if (args.Length < 1)
      {
        // If no server name is passed as an argument to this program, use the current
        // server name as default.
        server = Dns.GetHostName();
        Console.WriteLine("Using current host: " + server);
      }
      else
      {
        server = args[0];
        if (!(rex.Match(server)).Success)
        {
          Console.WriteLine("Input string format not allowed.");
          return;
        }
      }

      // Get the list of the addresses associated with the requested server.
      IPAddresses(server);

      // Get additional address information.
      IPAddressAdditionalInfo();
    }
  }
}
' This program shows how to use the IPAddress class to obtain a server 
' IP addressess and related information.
Imports System.Net
Imports System.Net.Sockets
Imports System.Text.RegularExpressions

Namespace Mssc.Services.ConnectionManagement
  Module M_TestIPAddress

    Class TestIPAddress

      'The IPAddresses method obtains the selected server IP address information.
      'It then displays the type of address family supported by the server and 
      'its IP address in standard and byte format.
      Private Shared Sub IPAddresses(ByVal server As String)
        Try
          Dim ASCII As New System.Text.ASCIIEncoding()

          ' Get server related information.
          Dim heserver As IPHostEntry = Dns.Resolve(server)

          ' Loop on the AddressList
          Dim curAdd As IPAddress
          For Each curAdd In heserver.AddressList

            ' Display the type of address family supported by the server. If the
            ' server is IPv6-enabled this value is: InterNetworkV6. If the server
            ' is also IPv4-enabled there will be an additional value of InterNetwork.
            Console.WriteLine(("AddressFamily: " + curAdd.AddressFamily.ToString()))

            ' Display the ScopeId property in case of IPV6 addresses.
            If curAdd.AddressFamily.ToString() = ProtocolFamily.InterNetworkV6.ToString() Then
              Console.WriteLine(("Scope Id: " + curAdd.ScopeId.ToString()))
            End If

            ' Display the server IP address in the standard format. In 
            ' IPv4 the format will be dotted-quad notation, in IPv6 it will be
            ' in in colon-hexadecimal notation.
            Console.WriteLine(("Address: " + curAdd.ToString()))

            ' Display the server IP address in byte format.
            Console.Write("AddressBytes: ")



            Dim bytes As [Byte]() = curAdd.GetAddressBytes()
            Dim i As Integer
            For i = 0 To bytes.Length - 1
              Console.Write(bytes(i))
            Next i
            Console.WriteLine(ControlChars.Cr + ControlChars.Lf)
          Next curAdd 

        Catch e As Exception
          Console.WriteLine(("[DoResolve] Exception: " + e.ToString()))
        End Try
      End Sub


      ' This IPAddressAdditionalInfo displays additional server address information.
      Private Shared Sub IPAddressAdditionalInfo()
        Try
          ' Display the flags that show if the server supports IPv4 or IPv6
          ' address schemas.
          Console.WriteLine((ControlChars.Cr + ControlChars.Lf + "SupportsIPv4: " + Socket.SupportsIPv4.ToString()))
          Console.WriteLine(("SupportsIPv6: " + Socket.SupportsIPv6.ToString()))

          If Socket.SupportsIPv6 Then
            ' Display the server Any address. This IP address indicates that the server 
            ' should listen for client activity on all network interfaces. 
            Console.WriteLine((ControlChars.Cr + ControlChars.Lf + "IPv6Any: " + IPAddress.IPv6Any.ToString()))

            ' Display the server loopback address. 
            Console.WriteLine(("IPv6Loopback: " + IPAddress.IPv6Loopback.ToString()))

            ' Used during autoconfiguration first phase.
            Console.WriteLine(("IPv6None: " + IPAddress.IPv6None.ToString()))

            Console.WriteLine(("IsLoopback(IPv6Loopback): " + IPAddress.IsLoopback(IPAddress.IPv6Loopback).ToString()))
          End If
          Console.WriteLine(("IsLoopback(Loopback): " + IPAddress.IsLoopback(IPAddress.Loopback).ToString()))
        Catch e As Exception
          Console.WriteLine(("[IPAddresses] Exception: " + e.ToString()))
        End Try
      End Sub

      Public Shared Sub Main(ByVal args() As String)
        Dim server As String = Nothing

        ' Define a regular expression to parse user's input.
        ' This is a security check. It allows only
        ' alphanumeric input string between 2 to 40 character long.
        Dim rex As New Regex("^[a-zA-Z]\w{1,39}$")

        If args.Length < 1 Then
          ' If no server name is passed as an argument to this program, use the current 
          ' server name as default.
          server = Dns.GetHostName()
          Console.WriteLine(("Using current host: " + server))
        Else
          server = args(0)
          If Not rex.Match(server).Success Then
            Console.WriteLine("Input string format not allowed.")
            Return
          End If
        End If

        ' Get the list of the addresses associated with the requested server.
        IPAddresses(server)

        ' Get additional address information.
        IPAddressAdditionalInfo()
      End Sub
    End Class
  End Module
End Namespace

備註

IPAddress 類別包含 IP 網路上電腦的位址。

建構函式

名稱 Description
IPAddress(Byte[], Int64)

初始化一個新的類別實例 IPAddress ,並指定位址為 Byte 陣列並指定範圍識別碼。

IPAddress(Byte[])

初始化一個新的類別實例 IPAddress ,並指定以陣列方式指定 Byte 位址。

IPAddress(Int64)

初始化一個新的類別實例 IPAddress ,地址指定為 Int64

IPAddress(ReadOnlySpan<Byte>, Int64)

初始化一個新的類別實例 IPAddress ,地址指定為位元組區間及指定範圍識別碼。

IPAddress(ReadOnlySpan<Byte>)

初始化一個新的類別實例 IPAddress ,位址指定為位元組區間。

欄位

名稱 Description
Any

提供一個 IP 位址,表示伺服器必須監聽所有網路介面上的用戶端活動。 此欄位僅供讀取。

Broadcast

提供 IP 廣播位址。 此欄位僅供讀取。

IPv6Any

Bind(EndPoint) 方法使用欄位 IPv6Any 表示必須 Socket 監聽所有網路介面上的用戶端活動。

IPv6Loopback

提供 IP 迴路回送位址。 這個屬性是唯讀的。

IPv6None

提供一個 IP 位址,表示不應使用任何網路介面。 這個屬性是唯讀的。

Loopback

提供 IP 迴路回送位址。 此欄位僅供讀取。

None

提供一個 IP 位址,表示不應使用任何網路介面。 此欄位僅供讀取。

屬性

名稱 Description
Address
已淘汰.
已淘汰.
已淘汰.
已淘汰.
已淘汰.

一個網際網路協定(IP)位址。

AddressFamily

取得 IP 位址的族群。

IsIPv4MappedToIPv6

讀取該 IP 位址是否為 IPv4 映射的 IPv6 位址。

IsIPv6LinkLocal

判斷該位址是否為 IPv6 連結本地位址。

IsIPv6Multicast

判斷該位址是否為 IPv6 多播全域位址。

IsIPv6SiteLocal

判斷該位址是否為 IPv6 站點的本地位址。

IsIPv6Teredo

判斷該位址是否為 IPv6 Teredo 位址。

IsIPv6UniqueLocal

判斷該位址是否為 IPv6 唯一本地位址。

ScopeId

取得或設定 IPv6 位址範圍識別碼。

方法

名稱 Description
Equals(Object)

比較兩個 IP 位址。

GetAddressBytes()

提供一個以網路順序排列的位元組陣列副本 IPAddress

GetHashCode()

回傳一個 IP 位址的雜湊值。

GetType()

取得目前實例的 Type

(繼承來源 Object)
HostToNetworkOrder(Int16)

將主機位元組順序的短值轉換為網路位元組順序。

HostToNetworkOrder(Int32)

將整數值從主機位元組順序轉換為網路位元組順序。

HostToNetworkOrder(Int64)

將主機位元組順序的長值轉換成網路位元組順序。

IsLoopback(IPAddress)

表示指定的 IP 位址是否為迴路位址。

IsValid(ReadOnlySpan<Char>)

判斷所提供的張成是否包含有效的 IPAddress

IsValidUtf8(ReadOnlySpan<Byte>)

判斷所提供的張成是否包含有效的 IPAddress

MapToIPv4()

將物件映射 IPAddress 到 IPv4 位址。

MapToIPv6()

將物件映射 IPAddress 到 IPv6 位址。

MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
NetworkToHostOrder(Int16)

將網路位元組順序的短值轉換為主機位元組順序。

NetworkToHostOrder(Int32)

將網路位元組順序的整數值轉換為主機位元組順序。

NetworkToHostOrder(Int64)

將網路位元組順序的長值轉換成主機位元組順序。

Parse(ReadOnlySpan<Byte>)

將UTF-8字元的範圍剖析為值。

Parse(ReadOnlySpan<Char>)

將以字元區段表示的 IP 位址轉換為實 IPAddress 例。

Parse(String)

將 IP 位址字串轉換成實 IPAddress 例。

ToString()

將網際網路位址轉換為其標準符號。

TryFormat(Span<Byte>, Int32)

嘗試將目前的 IP 位址格式化為提供的範圍。

TryFormat(Span<Char>, Int32)

嘗試將目前的 IP 位址格式化為提供的範圍。

TryParse(ReadOnlySpan<Byte>, IPAddress)

嘗試將UTF-8字元的範圍剖析為值。

TryParse(ReadOnlySpan<Char>, IPAddress)

嘗試將字元範圍剖析成值。

TryParse(String, IPAddress)

判斷字串是否為有效的 IP 位址。

TryWriteBytes(Span<Byte>, Int32)

嘗試將目前的 IP 位址依網路順序寫入一個位元組區段。

明確介面實作

名稱 Description
IFormattable.ToString(String, IFormatProvider)

使用指定的格式,格式化目前實例的值。

IParsable<IPAddress>.Parse(String, IFormatProvider)

將字串剖析成值。

IParsable<IPAddress>.TryParse(String, IFormatProvider, IPAddress)

嘗試將字串解析成 IPAddress.

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

嘗試將目前實例的值格式化為提供的字元範圍。

ISpanParsable<IPAddress>.Parse(ReadOnlySpan<Char>, IFormatProvider)

將字元範圍剖析為值。

ISpanParsable<IPAddress>.TryParse(ReadOnlySpan<Char>, IFormatProvider, IPAddress)

嘗試將字元範圍剖析成值。

IUtf8SpanFormattable.TryFormat(Span<Byte>, Int32, ReadOnlySpan<Char>, IFormatProvider)

嘗試將目前實例的值格式化為UTF-8到提供的位元組範圍。

IUtf8SpanParsable<IPAddress>.Parse(ReadOnlySpan<Byte>, IFormatProvider)

將UTF-8字元的範圍剖析為值。

IUtf8SpanParsable<IPAddress>.TryParse(ReadOnlySpan<Byte>, IFormatProvider, IPAddress)

提供網際網路協定(IP)位址。

適用於