IPAddress 提供网际协议 (IP) 地址
获取IPAddress对象方法:
- IPAddress (byte[] address); (常用方法)
- IPAddress (long newAddress);
- IPAddress (byte[] address, long scopeid);
- IPAddress.Parse(string ipString); (常用方法)
- Dns.GetHostEntry(Dns.GetHostName()).AddressList[0]; (常用方法)
1.IPAddress (byte[] address);
IPAddress ipa = new IPAddress(new byte[]{ 127,0,0,1});
2.IPAddress (long newAddress);
newAddress 例如 Big-Endian 格式的值 0x0100007F 可能为 IP 地址"127.0.0.1"。

文章图片
IPAddress ipa = new IPAddress(0x0100007F);
3.IPAddress (byte[] address, long scopeid);
* scopeid:获取或设置 IPv6 地址范围标识符。在多个接口连接到不同链接的主机上,为了消除这种不明确性,标识符用于指定交换消息所使用的接口,可以将同一链接本地地址分配给多个接口。
Address%ScopeId
例如,FE80::5EFE:192.168.41.30%2.

文章图片
4.IPAddress.Parse(string ipString);
*ipString:包含 IP 地址(IPv4 使用以点分隔的四部分表示法,IPv6 使用冒号十六进制表示法)的字符串。
IPAddress ipa_1 = IPAddress.Parse("127.0.0.1");
//IPv4
IPAddress ipa_2 = IPAddress.Parse("0:0:0:0:0:0:0:1");
//IPv6表示 127.0.0.1 IPAddress ipa_3 = IPAddress.Parse("localhost");
//错误,不支持该写法
如果使用IPv6链接时(方法:ipa_2)的时候,Client(客户端)用TcpClient链接时需要注意,需要告诉TcpClient使用的是IPv6(AddressFamily.InterNetworkV6),否则将会报错:使用了与请求的协议不兼容的地址。
Server(服务器代码)
static void Main(string[] args)
{int port = 8080;
IPAddress ipa = new IPAddress(0x0100007F);
TcpListener tcpL = new TcpListener(ipa, port);
tcpL.Start();
Console.ReadKey();
}
Client (客户端代码)
static void Main(string[] args)
{
int port = 8080;
// TcpClient tcpC = new TcpClient();
//报错 :使用了与请求的协议不兼容的地址。 [::1]:8080
TcpClient tcpC = new TcpClient(AddressFamily.InterNetworkV6);
try
{
tcpC.Connect(IPAddress.Parse("0:0:0:0:0:0:0:1"), port);
}
catch(Exception ex) {
Console.WriteLine(ex.Message);
} }
5.Dns.GetHostEntry(Dns.GetHostName()).AddressList[0]
IPAddress ipa = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
【C# 获取IPAddress对象方法】