【问题标题】:Split an IP address into four separate values将 IP 地址拆分为四个单独的值
【发布时间】:2011-01-08 22:07:10
【问题描述】:

如何将一个 IP 地址拆分为四个单独的值?

示例如果我的 ip 是 192.168.0.1

值1 = 192

值2 = 168

值3 = 0

值4 = 1

【问题讨论】:

  • 您的输入是什么 - 字符串/System.Net.IPAddress?您希望输出为字符串/字节/int32s ...吗?
  • 花一两秒时间熟悉 .NET 文档。还是你懒得打扰? System.Net.IPAddress.GetAddressBytes 可能会起作用。

标签: c# string


【解决方案1】:

对于 IPv4,每个八位字节为一个字节。您可以使用System.Net.IPAddress 解析地址并获取字节数组,如下所示:

// parse the address
IPAddress ip = IPAddress.Parse("192.168.0.1");

//iterate the byte[] and print each byte
foreach(byte i in ip.GetAddressBytes())
{
    Console.WriteLine(i);
}

代码的结果是:

192
168
0
1

【讨论】:

    【解决方案2】:

    如果你只想要不同的部分,那么你可以使用

            string ip = "192.168.0.1";
            string[] values = ip.Split('.');
    

    不过,您应该在此之前验证 IP 地址。

    【讨论】:

      【解决方案3】:

      我只需拨打.ToString(),然后拨打.Split('.');

      【讨论】:

        【解决方案4】:
        string ip = "192.168.0.1";
        string[] tokens = ip.Split('.');
        int value1 = Int32.Parse(tokens[0]);   // 192
        int value2 = Int32.Parse(tokens[1]);   // 168
        int value3 = Int32.Parse(tokens[2]);   // 0
        int value4 = Int32.Parse(tokens[3]);   // 1
        

        【讨论】:

          【解决方案5】:

          您可以将它们作为整数数组获取,如下所示:

          int [] tokens = "192.168.0.1".Split('.').Select(p => Convert.ToInt32(p)).ToArray();
          

          祝你好运!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-01-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-29
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多