java 根据给定的子网掩码和网关计算起始IP和结束IP

news/2024/9/17 8:22:03/ 标签: java, tcp/ip, 开发语言

java_IPIP_0">java 根据给定的子网掩码和网关计算起始IP和结束IP

以下是一个Java工具类,用于根据给定的子网掩码和网关计算起始IP和结束IP。

java">import java.net.InetAddress;
import java.net.UnknownHostException;public class IPUtils {public static void main(String[] args) {try {String subnetMask = "255.255.255.0";String gateway = "192.168.1.1";String startIp = calculateStartIp(subnetMask, gateway);String endIp = calculateEndIp(subnetMask, gateway);System.out.println("Start IP: " + startIp);System.out.println("End IP: " + endIp);} catch (UnknownHostException e) {e.printStackTrace();}}public static String calculateStartIp(String subnetMask, String gateway) throws UnknownHostException {byte[] subnetMaskBytes = InetAddress.getByName(subnetMask).getAddress();byte[] gatewayBytes = InetAddress.getByName(gateway).getAddress();byte[] startIpBytes = new byte[4];for (int i = 0; i < 4; i++) {startIpBytes[i] = (byte) (gatewayBytes[i] & subnetMaskBytes[i]);}return InetAddress.getByAddress(startIpBytes).getHostAddress();}public static String calculateEndIp(String subnetMask, String gateway) throws UnknownHostException {byte[] subnetMaskBytes = InetAddress.getByName(subnetMask).getAddress();byte[] gatewayBytes = InetAddress.getByName(gateway).getAddress();byte[] endIpBytes = new byte[4];for (int i = 0; i < 4; i++) {endIpBytes[i] = (byte) ((gatewayBytes[i] & subnetMaskBytes[i]) | (subnetMaskBytes[i] ^ 255));}return InetAddress.getByAddress(endIpBytes).getHostAddress();}
}

使用上述工具类,您可以通过修改subnetMaskgateway变量来计算起始IP和结束IP。


http://www.ppmy.cn/news/1521472.html

相关文章

力扣-9. 回文数

文章目录 力扣题目代码工程方法1&#xff1a;方法2&#xff1a; 力扣题目 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数 是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左…

Linux基础网络编程-Socket通信

本文使用C语言&#xff0c;在Centos实现Socket两种通信类型(TCP和UDP) 文章目录 一、安装gcc二、使用TCP协议&#xff0c;实现Socket(SOCKE_STREAM)流式通信1. 编写TCP_server.c函数和参数解释 2.编写TCP_client.c函数和参数解释 3. 编译并运行上述两个文件3.1 编译3.2 运行(启…

MyBatis的动态SQL---组合条件查询与传递集合和数组(超详细)

MyBatis的动态SQL—组合条件查询与传递集合和数组&#xff08;超详细&#xff09; 文章目录 MyBatis的动态SQL---组合条件查询与传递集合和数组&#xff08;超详细&#xff09;一、 定义二、mybatis提供的几大标签1. if 标签2. choose、when和otherwise标签3. trim标签4. forea…

微信小程序垃圾回收的前景方向

在当今这个环保意识日渐增强的时代&#xff0c;如何有效处理日常生活产生的垃圾已成为亟待解决的社会问题。微信小程序凭借其便捷性和广泛的用户基础&#xff0c;在推广垃圾分类与回收方面展现出巨大潜力。作为一款集智能化分类指导、在线预约回收、环保知识普及于一体的微信小…

OSPFV3 华为

1 OSPFV3简介 (IPV6) 定义 OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。 目前针对IPv4协议使用的是OSPF Version 2,针对IPv6协议使用OSPF Version 3。 OSPFv3是OSPF Version 3的简称。OSPFv3是运行于I…

opencv 实现两个图片的拼接去重功能

基础知识介绍 cv::Mat 是OpenCV库中用来表示图像和矩阵数据的核心类之一。它是一个多维数组&#xff0c;可以存储图像像素数据、矩阵数据以及其他类型的数据。以下是关于 cv::Mat 类的一些详细解释&#xff1a; 构造函数&#xff1a;cv::Mat 类有多个构造函数&#xff0c;可以用…

计算机的错误计算(八十四)

摘要 讨论双曲余割函数 csch(x)的计算精度问题。 例1. 计算 csch(320.97) . 不妨在 LibreOffice的电子表格中计算&#xff0c;则有&#xff1a; 若利用 csch(x) 1/sinh(x) 在Java中计算&#xff1a; import java.lang.Math; public class Csch{public static void main(S…

虚幻地形高度图生成及测试

虚幻地形高度图生成及测试 虚幻引擎地形系统将高度数据存储在高度图中&#xff0c;这是一个灰阶图像&#xff0c;使用黑白色值来存储地貌高程。在高度图中&#xff0c;纯黑色值表示最低点&#xff0c;纯白色值表示最高点。支持16位灰阶PNG、8位灰阶r8及16位灰阶r16格式。 本文…

【Linux】gcc/g++ 、make/Makefile、git、gdb 的使用

目录 1. Linux编译器-gcc/g1.1 编译器gcc/g的工作步骤1.2 函数库1.2.1 函数库的作用及分类1.2.2 动态链接和静态链接1.2.3 动态库和静态库的优缺点 1.3 gcc选项 2. Linux项目自动化构建工具-make/Makefile2.1 .PHONY2.2 尝试编写进度条程序 3. git3.1 安装 git3.2 下载项目到本…

51单片机的智能台灯设计【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块DS1302时间模块光敏传感器模块人体红外模块按键等模块构成。适用于智能台灯、自动调节灯光亮度等相似项目。 可实现基本功能: 1、LCD1602实时显示北京时间、环境光照强度、手动/自动模式、台灯亮度等信息&#xff1…

奥威-金蝶云星空BI方案

用金蝶云星空来记账&#xff0c;那确实好&#xff0c;但如果让你再去做一份详细的报表呢&#xff1f;自己开发的话&#xff0c;成本大、耗时长&#xff0c;一旦有了新的需求又要一再开发&#xff0c;长此以往将增加使用者使用难度&#xff0c;降低数据分析对运营决策的时效性。…

【js面试题】说说new操作符具体干了什么?

JavaScript中的new操作符&#xff1a;深入解析与自定义实现 在JavaScript中&#xff0c;new操作符是一个核心概念&#xff0c;用于创建一个实例对象。理解new的工作原理不仅有助于我们更好地掌握JavaScript的面向对象编程&#xff0c;还能让我们在需要时自定义构造函数的行为。…

Unexpected token d in JSON at position 5, check bodyParser config错误解决

错误原因&#xff1a;json格式不对 { desc"设备1", iotProjectId11 } 解决&#xff1a;通过json在线校验格式校验json格式&#xff0c;找出错误原因&#xff0c;修改 在线JSON校验格式化工具&#xff08;Be JSON&#xff09; 修改&#xff1a; {"desc": &…

一个webpack的plugin 的简单例子

下面是一个简单的 Webpack 插件示例&#xff0c;该插件会在输出目录中创建一个文本文件&#xff0c;并向其中写入当前的时间戳。这个插件演示了如何注册一个监听器&#xff0c;在编译完成之后执行自定义的操作。 首先&#xff0c;你需要创建一个 JavaScript 文件来定义你的插件…

2024年高教杯国赛(E题)数学建模竞赛解题思路|完整代码论文集合

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…

Java设计模式【备忘录模式】-行为型

1. 介绍 备忘录模式&#xff08;Memento Pattern&#xff09; 是一种行为型设计模式&#xff0c;允许在不破坏封装的前提下&#xff0c;捕获并保存一个对象的内部状态&#xff0c;然后可以在以后将其恢复到原先保存的状态。备忘录模式的核心思想是记录和恢复对象的状态&#x…

2024年高教社杯全国大学生数学建模竞赛A题思路(2024数学建模国赛A题思路)

A题 “板凳龙” 闹元宵 “板凳龙”,又称“盘龙”,是浙闽地区的传统地方民俗文化活动。人们将少则几十条,多则上百条的板凳首尾相连,形成蜿蜒曲折的板凳龙。盘龙时,龙头在前领头,龙身和龙尾相随盘旋,整体呈圆盘状。一般来说,在舞龙队能够自如地盘入和盘出的前提下,盘龙…

【openwrt-21.02】T750 openwrt MT7916 WPS PBC功能实现

Openwrt版本 NAME="OpenWrt" VERSION="21.02-SNAPSHOT" ID="openwrt" ID_LIKE="lede openwrt" PRETTY_NAME="OpenWrt 21.02-SNAPSHOT" VERSION_ID="21.02-snapshot" HOME_URL="https://openwrt.org/" …

【学习笔记】卫星通信NTN 3GPP标准化进展分析(三)- 3GPP Release17 内容

一、引言&#xff1a; 本文来自3GPP Joern Krause, 3GPP MCC (May 14,2024) Non-Terrestrial Networks (NTN) (3gpp.org) 本文总结了NTN标准化进程以及后续的研究计划&#xff0c;是学习NTN协议的入门。 【学习笔记】卫星通信NTN 3GPP标准化进展分析&#xff08;一&#xff…

MySQL 使用C语言链接

mysql的基础&#xff0c;我们之前已经学过&#xff0c;后面我们只关心使用 要使用C语言连接mysql&#xff0c;需要使用mysql官网提供的库&#xff0c;大家可以去官网下载 我们使用C接口库来进行连接 要正确使用&#xff0c;我们需要做一些准备工作&#xff1a; 保证mysql服务有…