IPAddress 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供網際網路協定(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(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 |
|---|---|
| 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)位址。 |