【发布时间】:2013-02-01 07:51:47
【问题描述】:
我的IPv6知识非常有限,能帮我解决这个问题吗? 众所周知,对于 IPv4,如果网络掩码为 25,则映射地址应为 255.255.255.128。算术代码如下:
public static String getNetmaskFromBits( int bits )
{
StringBuilder b = new StringBuilder( 15 );
int tempBits = 0xFFFFFFFF;
tempBits = tempBits << 32 - bits;
b.append( ( tempBits & 0xFF000000 ) >>> 24 ).append( '.' );
b.append( ( tempBits & 0x00FF0000 ) >>> 16 ).append( '.' );
b.append( ( tempBits & 0x0000FF00 ) >>> 8 ).append( '.' );
b.append( tempBits & 0x000000FF );
return b.toString();
}
IPv6 怎么样?它可以是 128 位。如何将其映射到 IPv6 地址?代码应该是这样的:
public static String getIpv6NetmaskFromBits( int bits )
{
StringBuilder b = new StringBuilder( 15 );
...
return b.toString();
}
【问题讨论】:
-
这个问题指的是二进制打包的网络掩码而不是文本形式:stackoverflow.com/q/7158528/175849