IPv6 地址校验

本文介绍了IPv4地址如何转化为IPv6格式,包括使用混合符号表示法,以及如何使用`sun.net.util.IPAddressUtil`类进行IPv6网络地址的验证。还提到了地址转换方法,如文本形式转二进制和IPv4映射到IPv6的处理。
摘要由CSDN通过智能技术生成

IPv6 地址校验

参考链接:https://segmentfault.com/a/1190000038404439

  1. IPv4地址由32位二进制数组成,被分为4个8位组,每个8位组用十进制表示0~255的数字。IPv4地址格式为xxx.xxx.xxx.xxx,每组数字之间以“.”分割。
    示例:示例IPv4地址:192.168.1.1
  2. 而IPv6地址则由128位二进制数组成,以8个16位的16进制块表示。IPv6地址格式为xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,每个16位块之间以“:”分割。
    示例:示例IPv6地址:2001:0db8:85a3:0000:0000:8a2e:0370:7334
    因为IPv6地址比IPv4地址长度更长,可以提供更多的地址空间,不仅能够满足当前的网络需求,还能够满足未来的扩展需求。

1. IPv4 地址转化为 IPv6 格式。

举例来说:如果 IPv4 的一个地址为 135.75.43.52(十六进制为 0x874B2B34),它可以被转化为 0000:0000:0000:0000:0000:0000:874B:2B34 或者 ::874B:2B34。同时,还可以使用混合符号(IPv4- compatible address),则地址可以为::135.75.43.52

2. 验证IPv6 网络地址

import sun.net.util.IPAddressUtil;

public class ipCheck {
    public static void main(String[] args) {

//        String ip = "127.0.0.1";
//        String ip = "abcd::abcd:abcd:abcd:abcd";
        String ip = "abcd.123:0";
        boolean isIpv4 = IPAddressUtil.isIPv4LiteralAddress(ip);
        System.out.println(isIpv4+" is ipv4?"+isIpv4);
        boolean isIpv6 = IPAddressUtil.isIPv6LiteralAddress(ip);
        System.out.println(isIpv6+" is ipv6?"+isIpv6);
    }
}


3. sun.net.util.IPAddressUtil 地址转换

  • textToNumericFormatV4: 将文本形式的IP4地址转换为二进制形式
  • textToNumericFormatV6 :将文本形式的IP6地址转换为二进制形式
  • convertFromIPv4MappedAddress : 将IP6地址转换为IP4地址,转换失败则返回null
  • isIPv4MappedAddress : 判断指定的IP地址是否为IP4地址映射成的IP6地址
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值