我需要修剪给定的IP地址以获得它的前3个部分
示例:
“192.168.1.20”➨“192.168.1。”
“29.6.60.241”➨“29.6.60。”
答案 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位是考虑