电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

java IP地址網段計算的示例代碼

瀏覽:2日期:2022-09-04 18:27:23

根據IP地址與字段掩碼計算網段最大最小IP

package c04;import java.net.UnknownHostException;public class IPNetworkSegmentCalculation { public static void main(String[] args) throws UnknownHostException { String ip = '192.168.126.2'; String mask = '255.255.255.0'; findMask(); } public static void findMask(){ String mask = '255.255.255.0'; String ip = '192.168.126.2'; String[] ipArray = ip.split('[.]'); String[] maskArray = mask.split('[.]'); String minIp = ''; String maxIp = ''; int subMask = 0; for(int i=0 ;i < maskArray.length ; i++){ int maskTmp = Integer.valueOf(maskArray[i]); int ipTmp = Integer.valueOf(ipArray[i]); int mi = maskTmp&ipTmp; //System.out.println('==============='+maskTmp+' '+ipTmp); if(ipTmp == mi && maskTmp==255){minIp = minIp + ipTmp+'.' ;maxIp = maxIp + ipTmp+'.' ;subMask = subMask + 8; }else{minIp = minIp + mi+'.' ;maxIp = maxIp + maxNetSeg(Integer.toBinaryString(maskTmp),mi)+'.';subMask = subMask + subMaskNum(Integer.toBinaryString(maskTmp)); } } minIp = minIp.substring(0,minIp.length()-1); maxIp = maxIp.substring(0,maxIp.length()-1); System.out.println('minip '+minIp); System.out.println('maxip '+maxIp); System.out.println('mask '+subMask); } private static int calculate(int n) { if (n == 0) return 1; return 2 * calculate(n - 1); } private static Integer maxNetSeg(String s1,int mi){ s1 = new StringBuffer(s1).reverse().toString(); if(s1.indexOf('1')!=-1){ int i = s1.indexOf('1'); return mi+calculate(i); }else { return 255; } } private static Integer subMaskNum(String s1){ if(s1.lastIndexOf('1')!=-1){ int i = s1.lastIndexOf('1') + 1; return i; } return 0; }}

Java根據網段計算子網掩碼,起始IP,結束IP

/** * IP的相關計算 * @author zengchaowang * @version 1.0 * */public class IpCaculate { /** * 根據掩碼位數計算掩碼 * @param maskIndex 掩碼位 * @return 子網掩碼 */public static String getNetMask(String maskIndex) {StringBuilder mask = new StringBuilder();Integer inetMask = 0;try {inetMask = Integer.parseInt(maskIndex);} catch (NumberFormatException e) {System.out.println(e.getMessage());return null;}if (inetMask > 32) {return null;}// 子網掩碼為1占了幾個字節int num1 = inetMask / 8;// 子網掩碼的補位位數int num2 = inetMask % 8;int array[] = new int[4];for (int i = 0; i < num1; i++) {array[i] = 255;}for (int i = num1; i < 4; i++) {array[i] = 0;}for (int i = 0; i < num2; num2--) {array[num1] += 1 << 8 - num2;}for (int i = 0; i < 4; i++) {if (i == 3) {mask.append(array[i]);} else {mask.append(array[i] + '.');}}return mask.toString();} /** * 根據網段計算起始IP 網段格式:x.x.x.x/x * 一個網段0一般為網絡地址,255一般為廣播地址. * 起始IP計算:網段與掩碼相與之后加一的IP地址 * @param segment 網段 * @return 起始IP */public static String getStartIp(String segment) {StringBuffer startIp = new StringBuffer();if (segment == null) {return null;}String arr[] = segment.split('/');String ip = arr[0];String maskIndex = arr[1];String mask = IpCaculate.getNetMask(maskIndex);if (4 != ip.split('.').length || mask == null) {return null;}int ipArray[] = new int[4];int netMaskArray[] = new int[4];for (int i = 0; i < 4; i++) {try {ipArray[i] = Integer.parseInt(ip.split('.')[i]);netMaskArray[i] = Integer.parseInt(mask.split('.')[i]);if (ipArray[i] > 255 || ipArray[i] < 0 || netMaskArray[i] > 255 || netMaskArray[i] < 0) {return null;}ipArray[i] = ipArray[i] & netMaskArray[i];if(i==3){startIp.append(ipArray[i]+1);}else{startIp.append(ipArray[i]+'.');}} catch (NumberFormatException e) {System.out.println(e.getMessage());}} return startIp.toString();}/** * 根據網段計算結束IP * @param segment * @return 結束IP */public static String getEndIp(String segment) { StringBuffer endIp=new StringBuffer();String startIp = getStartIp(segment); if (segment == null) {return null;}String arr[] = segment.split('/');String maskIndex = arr[1];//實際需要的IP個數 int hostNumber = 0; int startIpArray[] = new int[4];try {hostNumber=1<<32-(Integer.parseInt(maskIndex));for (int i = 0; i <4; i++) { startIpArray[i] = Integer.parseInt(startIp.split('.')[i]); if(i == 3){ startIpArray[i] = startIpArray[i] - 1;break; } } startIpArray[3] = startIpArray[3] + (hostNumber - 1); } catch (NumberFormatException e) {System.out.println(e.getMessage());} if(startIpArray[3] >255){ int k = startIpArray[3] / 256; startIpArray[3] = startIpArray[3] % 256; startIpArray[2] = startIpArray[2] + k; } if(startIpArray[2] > 255){ int j = startIpArray[2] / 256; startIpArray[2] = startIpArray[2] % 256; startIpArray[1] = startIpArray[1] + j;if(startIpArray[1] > 255){ int k = startIpArray[1] / 256; startIpArray[1] = startIpArray[1] % 256; startIpArray[0] = startIpArray[0] + k;} } for(int i = 0; i < 4; i++){ if(i == 3){ startIpArray[i] = startIpArray[i] - 1; } if('' == endIp.toString()||endIp.length()==0){ endIp.append(startIpArray[i]); }else{ endIp.append('.' + startIpArray[i]); } } return endIp.toString();} }

根據網段計算起始IP 網段格式:x.x.x.x/x

網段內需要的IP數量為:2的(32-掩碼位)次方個。

因為一個網段0一般為網絡地址,255一般為廣播地址, 所以第一個可用IP起始IP計算:網段與掩碼相與之后加一的IP地址,結束IP為通過計算需要的所有IP數然后做累加運算,超過256則進位進行運算。

到此這篇關于java IP地址網段計算的示例代碼的文章就介紹到這了,更多相關java IP地址計算內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 诗词大全-古诗名句 - 古诗词赏析| 环比机械| 模切之家-专注服务模切行业的B2B平台! | 快速卷帘门_硬质快速卷帘门-西朗门业 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科 | 三价铬_环保铬_环保电镀_东莞共盈新材料贸易有限公司 | 展厅设计-展馆设计-专业企业展厅展馆设计公司-昆明华文创意 | 青州开防盗门锁-配汽车芯片钥匙-保险箱钥匙-吉祥修锁店 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 免联考国际MBA_在职MBA报考条件/科目/排名-MBA信息网 | 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 真空泵厂家_真空泵机组_水环泵_旋片泵_罗茨泵_耐腐蚀防爆_中德制泵 | 广州迈驰新GMP兽药包装机首页_药品包装机_中药散剂包装机 | 渣土车电机,太阳能跟踪器电机,蜗轮蜗杆减速电机厂家-淄博传强电机 | 聚丙烯酰胺PAM-聚合氯化铝PAC-絮凝剂-河南博旭环保科技有限公司 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 脉冲布袋除尘器_除尘布袋-泊头市净化除尘设备生产厂家 | 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 旋片真空泵_真空泵_水环真空泵_真空机组-深圳恒才机电设备有限公司 | 浙江宝泉阀门有限公司| 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 钢格板_钢格栅_格栅板_钢格栅板 - 安平县鑫拓钢格栅板厂家 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 北京模型公司-工业模型-地产模型-施工模型-北京渝峰时代沙盘模型制作公司 | 地脚螺栓_材质_标准-永年县德联地脚螺栓厂家 | 手板_手板模型制作_cnc手板加工厂-东莞天泓 | 厂房出租_厂房出售_产业园区招商_工业地产&nbsp;-&nbsp;中工招商网 | 钢制暖气片散热器_天津钢制暖气片_卡麦罗散热器厂家 | 缠膜机|缠绕包装机|无纺布包装机-济南达伦特机械设备有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 伺服电机_直流伺服_交流伺服_DD马达_拓达官方网站 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 |