当我尝试检查字符串是否是IPv4地址时,我发现该函数给出了以下结果.
144.122.1 - >真的
144.122.1.a - > false
144.122.1.333 - > false
知道为什么第一个是真的吗?
功能是: sun.net.util.IPAddressUtil.isIPv4LiteralAddress
你可以从源头本身看出他们为什么这样做:
当指定三部分地址时,最后一部分被解释为16位数量并放在网络地址的最右边两个字节中.这使得三部分地址格式便于将B类网络地址指定为128.net.host.
所以它看起来144.122.1等同于144.122.0.1.
关于文本IP地址部分数量的完整评论集如下:
当只给出一个部分时,该值直接存储在网络地址中,而不进行任何字节重新排列.
当提供两部分地址时,最后一部分被解释为24位数量并放在网络地址的最右边三个字节中.这使得两部分地址格式便于将A类网络地址指定为net.host.
当指定三部分地址时,最后一部分被解释为16位数量并放在网络地址的最右边两个字节中.这使得三部分地址格式便于将B类网络地址指定为128.net.host.
当指定四个部分时,每个部分被解释为一个数据字节,并从左到右分配给IPv4地址的四个字节.
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |