C# 获取IPAddress对象方法

IPAddress 提供网际协议 (IP) 地址
获取IPAddress对象方法:

  1. IPAddress (byte[] address); (常用方法)
  2. IPAddress (long newAddress);
  3. IPAddress (byte[] address, long scopeid);
  4. IPAddress.Parse(string ipString); (常用方法)
  5. 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"。
C# 获取IPAddress对象方法
文章图片

IPAddress ipa = new IPAddress(0x0100007F);

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

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对象方法】

    推荐阅读