广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java实现IP地址到二进制的转换
  • 397
分享到

Java实现IP地址到二进制的转换

2024-04-02 19:04:59 397人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

Java编程实现十进制IP地址到二进制IP地址的转换。 如:192.168.1.100,转换后:11000000.10101000.00000001.01100100 要求: 1.定

Java编程实现十进制IP地址到二进制IP地址的转换。

如:192.168.1.100,转换后:11000000.10101000.00000001.01100100

要求:

1.定义自定义异常类InvalidIP(检查型的),代表IP地址非法---如:点分十进制IP段数不是4;各段数值不是0~255范围

2.定义公有静态方法convertIP实现转换,点分十进制IP地址为参数,转换后的二进制IP为返回值,在方法内检查参数IP地址的合法性,如非法,请抛出自定义异常InvalidIP

public static String convertIP(String ip)throws InvalidIP

提示:

(1)先做字符串拆分,"."为分隔符,存入String[];

(2)再做字符串到int的转换,考虑进制问题,生成int[];

(3)对数组长度做判断,不是4,则IP非法抛出异常;对转换后的数值做判断,不是0~255范围,则IP非法抛出异常。

3.在主方法中实现用户输入、方法调用及输出,即:

(1)通过Scanner类的nextLine()读取键盘输入,或者通过JOptionPane.showInputDialog(String str)实现对话框文本输入,得到欲转换的点分十进制IP字符串str;

(2)调用convertIP(str)实现转换并得到返回值,此处需有异常处理;

(3)输出结果,命令行方式,或者对话框方式JOptionPane.showMessageDialog(String str)


import com.sun.deploy.util.StringUtils;
import java.util.Arrays;
import java.util.Scanner;
 
class InvalidIP extends Exception {  //定义自定义异常类InvalidIP(检查型的),代表IP地址非法---如:点分十进制IP段数不是4;各段数值不是0~255范围
        InvalidIP(String s) {
            super(s);
            return;
        }
    }
 
public class Test6_1 {
    public static String convertIP(String str) throws InvalidIP { //定义公有静态方法convertIP实现转换,点分十进制IP地址为参数,转换后的二进制IP为返回值,在方法内检查参数IP地址的合法性,如非法,请抛出自定义异常InvalidIP
        String[] ipstr = str.split("\\.");
        String return_ip = null;
        if (ipstr.length==4) {
            int[] array = Arrays.stream(ipstr).mapToInt(Integer::parseInt).toArray();
            String[] ipa = new String[4];
            for(int i=0;i<array.length;i++)
            {
                if (array[i]<1 || array[i]>255){
                    throw new InvalidIP("各段数值不是0~255范围!"+"\n"); // 出现字段不在1-255之间,抛出异常
                }else{
                    String x = Integer.toBinaryString(array[i]);
                    String ip8 = "00000000";
                    ipa[i] = ip8.substring(0, ip8.length() - x.length()) + x;
                    if(ipa[1]!=null&&ipa[2]!=null&&ipa[3]!=null){
                        String ip = StringUtils.join(Arrays.asList(ipa), ".");
                        return_ip = ip;
                    }
                }
            }
        }else{
            throw new InvalidIP("点分十进制IP段数不是4!"+"\n"); // 字段数量溢出,抛出异常1
        }
        return return_ip;
    }
    public static void main(String[] args){
        while(true) {
            Scanner in = new Scanner(System.in);
            System.out.println("请输入IP地址:");
            String str = in.nextLine();
            try {
                System.out.println("转换为二进制:"+convertIP(str)+"\n");
            }
            catch(InvalidIP e) {
                System.out.println(e.getMessage());
            }
        }
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Java实现IP地址到二进制的转换

本文链接: https://www.lsjlt.com/news/158446.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实现IP地址到二进制的转换
    Java编程实现十进制IP地址到二进制IP地址的转换。 如:192.168.1.100,转换后:11000000.10101000.00000001.01100100 要求: 1.定...
    99+
    2022-11-12
  • Java怎么实现IP地址到二进制的转换
    这篇文章主要介绍“Java怎么实现IP地址到二进制的转换”,在日常操作中,相信很多人在Java怎么实现IP地址到二进制的转换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么实现IP地址到二进制的转换...
    99+
    2023-06-21
  • java实现IP地址转换
    一个IP地址是用四个字节(每个字节8位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。 输入数据要求: 必须为二进制数,即只能输入0或者1 长...
    99+
    2022-11-12
  • 域名到ip地址的转换通过什么实现
    域名到ip地址的转换是通过DNS协议来实现的。DNS是一种分布式网络目录服务,DNS 协议建立在UDP或TCP协议之上,默认使用 53 号端口,大多数因特网服务依赖于DNS而工作,一旦DNS出错,就无法连接网络,任何与网络有关的操作都不能使...
    99+
    2022-10-15
  • Win8使用IE10转到复制的地址功能实现复制网址到地址栏
      如果我们需要在另一个浏览器打开同一个网站,一般复制网址到地址栏,再回车或点击地址栏右侧的“转至”来实现。在Win8的IE10浏览器中,可以使用“转到复制的地址&rdq...
    99+
    2022-06-04
    转到 地址栏 地址
  • php如何实现IP地址和整数的转换
    今天小编给大家分享一下php如何实现IP地址和整数的转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。IP地址是计算机互联网...
    99+
    2023-07-06
  • 基于Java解决华为机试实现整数与IP地址间的转换
    目录1.简述示例12.代码实现1.简述 描述: 原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数。 举例:...
    99+
    2022-11-13
  • Java图片与二进制相互转换怎么实现
    这篇文章主要介绍了Java图片与二进制相互转换怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java图片与二进制相互转换怎么实现文章都会有所收获,下面我们一起来看看吧。1、下面是一个完整的代码示例指定文...
    99+
    2023-07-05
  • Java实现任意进制转换
    本文实例为大家分享了Java实现任意进制转换的具体代码,供大家参考,具体内容如下 问题描述 编写程序实现任意进制间的相互转换 (一)、进制转换思想 1、先把任意进制转化为十进制 2、...
    99+
    2022-11-12
  • PHP根据IP地址怎么实现城市切换或跳转
    这篇“PHP根据IP地址怎么实现城市切换或跳转”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“PHP根据IP地址怎么实现城市切换或跳转”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢...
    99+
    2023-06-06
  • QT实现二、八、十六进制之间的转换
    主要使用QT中的三个方法。 第一个是QString::number(int n, int base = 10);第二个是QString::setNum(short n, int ba...
    99+
    2022-11-13
  • Java图片与二进制相互转换实现示例讲解
    目录1、下面是一个完整的代码示例2、如何判断 base64 图片的格式3、将网络图片转为 base64 字符串4、将 base64 字符串转为图片输出5、将文件转为 base64 字...
    99+
    2023-03-19
    Java图片与二进制转换 Java图片转换二进制
  • C语言实现十六进制与二进制的相互转换
    目录十六进制->二进制二进制->十六进制本文中的代码可以将文件中的十六进制存储与二进制存储相互转换。 十六进制->二进制 原理是:每两位存储为一个字符(char)保...
    99+
    2022-11-13
    C语言 十六进制转二进制 C语言 二进制转十六进制 C语言 二进制 十六进制
  • C++实现十进制数转换为二进制数的数学算法
    一、十进制转换为二进制的数学算法 设目标十进制数为n,用短除法一直除以2,循环这个过程并记录余数,当商为0时结束循环,余数从后往前读就是转换为的二进制数 eg: 二、代码实现 1....
    99+
    2022-11-12
  • 如何解决十进制到二进制之前的转换精度问题
    这篇文章主要为大家展示了“如何解决十进制到二进制之前的转换精度问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决十进制到二进制之前的转换精度问题”这篇文...
    99+
    2022-10-19
  • Java如何实现十进制与十六进制转换
    这篇文章主要介绍了Java如何实现十进制与十六进制转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。示例:import java.util.HashMap;impo...
    99+
    2023-06-20
  • QT怎么实现二、八、十六进制之间的转换
    这篇文章主要讲解了“QT怎么实现二、八、十六进制之间的转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“QT怎么实现二、八、十六进制之间的转换”吧!主要使用QT中的三个方法。第一个是QStr...
    99+
    2023-06-30
  • MySQL怎么有效的实现存储IP地址及字符串IP和数值之间的转换
    小编给大家分享一下MySQL怎么有效的实现存储IP地址及字符串IP和数值之间的转换,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!之间,建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储I...
    99+
    2023-06-22
  • Java实现获取内网的所有IP地址
    目录题目描述代码详解效果展示题目描述 在进行网络编程时,有时需要对局域网的所有主机进行遍历,为此需要获得内网的所以IP地址 题目实现:获得内网的所有IP地址的小应用。 解题思路 创建...
    99+
    2022-11-13
  • NAT网络地址转换的3种实现方式
    NAT网络地址转换的3种实现方式: 1、静态NAT(一对一) 2、动态NAT(多对多) 3、端口多路复用PAT(多对一)   1、静态配置 (1)在内部局部和内部全局地...
    99+
    2023-01-31
    网络地址 方式 NAT
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作