📜  c# ip 地址转字符串 - C# (1)

📅  最后修改于: 2023-12-03 14:59:40.193000             🧑  作者: Mango

C# IP地址转字符串

在C#中,IP地址经常用于网络通信和系统管理。将IP地址转换成字符串是一个常见的需求,本文将给出几种方法来实现这个任务。

1. 使用ToString()方法

可以将IP地址转换成字符串,使用IPAddress类的ToString()方法,如下所示:

IPAddress ipAddress = IPAddress.Parse("192.168.1.1");
string ipAddressStr = ipAddress.ToString();
Console.WriteLine(ipAddressStr);  // 输出:192.168.1.1
2. 使用IPAddress.GetAddressBytes()方法

IPAddress类还提供了GetAddressBytes()方法,该方法返回一个字节数组,其中包含了IP地址的四个8位组。我们可以使用BitConverter类将这个字节数组转换成一个整数,然后再将整数转换成点分十进制字符串。

IPAddress ipAddress = IPAddress.Parse("192.168.1.1");
byte[] ipAddressBytes = ipAddress.GetAddressBytes();
int ipAddressInt = BitConverter.ToInt32(ipAddressBytes, 0);
string ipAddressStr = ipAddressInt.ToString();
Console.WriteLine(ipAddressStr);  // 输出:16885952

接着,我们需要将整数转换成点分十进制字符串。这个过程可以使用Bitwise And和Shift运算符,如下所示:

string ipAddressStr =
    ((ipAddressInt >> 24) & 0xFF) + "." +
    ((ipAddressInt >> 16) & 0xFF) + "." +
    ((ipAddressInt >> 8) & 0xFF) + "." +
    (ipAddressInt & 0xFF);
Console.WriteLine(ipAddressStr);  // 输出:192.168.1.1
3. 使用IPAddress.GetAddressBytes()方法和LINQ

我们也可以使用LINQ语言集成查询,在一行代码中将IP地址转换成点分十进制字符串。我们可以使用IPAddress类的GetAddressBytes()方法,然后将结果投射到一个字符串数组中,最后使用String.Join()方法将字符串数组连接起来。

IPAddress ipAddress = IPAddress.Parse("192.168.1.1");
string ipAddressStr = string.Join(".", ipAddress.GetAddressBytes().Select(b => b.ToString()));
Console.WriteLine(ipAddressStr);  // 输出:192.168.1.1

以上就是几种将IP地址转换成字符串的方法,在实际开发中,我们可以根据具体需求来选择最合适的方法。