如何修剪IP地址以获得它的前3个部分?

时间:2012-03-16 13:10:18

标签: c# string trim

我需要修剪给定的IP地址以获得它的前3个部分

示例:

“192.168.1.20”➨“192.168.1。”
“29.6.60.241”➨“29.6.60。”

5 个答案:

答案 0 :(得分:12)

String result = input.substring(0,input.lastIndexOf("."));

答案 1 :(得分:5)

使用String.LastIndexOf(),应该很容易。

修改
使用该方法,您可以找到最后一个'。'。然后你需要一个子串到(显然)包含'。'。类似的东西:

string shortened = longIP.Substring(0,longIP.LastIndexOf(".")+1);

答案 2 :(得分:2)

string ip= "192.168.1.100";
string partial = ip.Substring(0,ip.LastIndexOf("."));

答案 3 :(得分:1)

string sHostName = Dns.GetHostName();
IPHostEntry ipE = Dns.GetHostByName(sHostName);
IPAddress[] IpA = ipE.AddressList;
for (int i = 0; i < IpA.Length; i++)
{
    if(IpA[i].AddressFamily == AddressFamily.InterNetwork)
    {
        Console.WriteLine("IP Address {0}: {1} {2} ", i, IpA[i].ToString() , sHostName);
        string[] x = IpA[i].ToString().Split('.');
        Console.WriteLine("{0}.{1}.{2}.", x[0], x[1], x[2]);
    }
}

答案 4 :(得分:0)

在内部,IP地址(IPv4和IPv6)只是位串。 IPv4适合32位,IPv6适合64位。因此,您的问题的真正答案是仅使用逻辑AND操作屏蔽要保留的位,并使其他位为0。

在大多数情况下,您可以指定IP地址和掩码。规则是要询问A是否与B相同,检查掩码位为真的位。

这导致了一个常见的表示法:人们写了一个像124.51.3 / 17这样的IP地址来说第一部分描述了一个IP地址(可能是IPv4),而/ 17意味着前17位是考虑