ipv4、ipv6格式校验代码

本文介绍了IPv4和IPv6地址的格式要求,并提供了格式校验的题目和解答。对于IPv4,强调了每组数字的范围和不能以0开头的规定;对于IPv6,讲解了16进制数字的组别限制和0的使用规则。内容包括如何判断字符串是否符合ipv4或ipv6格式,并给出了校验逻辑和代码实现思路。
摘要由CSDN通过智能技术生成

ipv4、ipv6格式校验代码

一、题目

IPv4 地址格式:
IPv4地址由4组十进制数组成,每组范围为 0 - 255,用“.”分割。
注意:IPv4 地址内的数不能以 0 开头。
例:127.23.01.16 不合法,01以0开头

IPv6 地址格式:
IPv6由8组16进制的数字组成,每组由数字和字符组成,表示16位数。用 “:”分割。
注意:
不区分大小写;
数字可以以0 开头,但多余的 0 不被允许;
例:1027:00000:1901:234d:a908:2313:4432:0232不合法,出现00000超出4位。
不能因为某个组的值为 0,而使用一个空的组,以至于出现 ( :: ) 的情况;
例:1027::1901:234d:a908:2313:4432:232不合法,出现::。

输入格式:
键盘输入一个字符串

输出格式:
若字符串符合ipv4格式,则输出"ipv4";
若字符串符合ipv6格式,则输出"ipv6";
都不满足,则输出"Neither";

二、解答

规则分析:
ipv4校验逻辑:

  • ipv4分割后数组大小==4 ;
  • 每位数字长度[1,3];
  • 不能以多余的0开头;
  • 每位判断是否是数字;

ipv6校验逻辑:

  • ipv6分割后数组大小==8 ;
  • 每位长度[0,4];
  • 每位是否为数字、或小写字符a-f、或大写字符A-F

代码实现
【方式一】上述思路实现:

public class _ipv4_ipv6 {
   
    public static void main(String[] args) {
   
        Scanner sc = new Scanner(System.in);
        String IP = sc.nextLine();
        
        System.out.println(new _ipv4_ipv6().judgeIp(IP));
    }

    public String judgeIp(String IP) {
   
        if (IP.contains(".")) {
   
            String[] ipv4 = IP.split(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值