分享一个自制的计算子网划分的小工具

使用 javascirpt 写的,因此可以使用浏览器浏览即可

code:

<meta charset="utf-8">输入划分网段的数量:
<input id="inp_netCount" />
<input type="button" οnclick="createElem()" value="start"><hr>
<div id="div_showNet" style="border:1px solid #c3c3c3;width:500px;height:300px;overflow:scroll">
</div><br/><br>输入被划分的IP地址:
<input id="inp_startIP" />
<input type="button" οnclick="beginInit()" value="start"><hr>
<div id=""><table class="table_showResult" id="table_showResult" border=1><tr><td>网络地址</td><td>子网掩码</td><td>第一地址</td><td>最后地址</td><td>广播地址</td></tr></table>
</div><script>/**************************        GOLBAL         **************************/var __pointer = 0;var netcount = 0;var hostbit = new Array();var beginIP = new Array();var netmask = new Array();/**************************      CREATE INP       **************************/function createElem(){var str = "";netcount = document.getElementById("inp_netCount").value;for(var i=1; i<=netcount; i++){str += "第" + (i<10?i="0"+i:i) + "网段需要";str += "<input id=a"+(i-0)+" size='10' value='"+i*100+"'/>台&nbsp;";if(i%2==0)str+="<br/>"}document.getElementById("div_showNet").innerHTML = str}/**************************      INIT MAIN        **************************/function beginInit(){calcHostBit();calcBeginIP();calcNetMask();//alert(hostbit.join("\n"));//alert(beginIP.join("\n"));//alert(netmask.join("\n"));for(var i=0; i<netcount; i++)calcTheMain(i);}function calcHostBit(){var b = 0;var hostcount;//clearHostbitfor(i=0; i<netcount; i++)hostbit[i] = 0;//setHostbitfor(i=0; i<netcount; i++){hostcount = document.getElementById("a"+(i+1)).value - 0 + 2;while( (1<<b) <  hostcount )b++;hostbit[i] = b;b=0;}//sortHostbitfor(i=0; i<netcount; i++)hostbit[i]-=0;//for(i=0; i<netcount; i++)// alert(hostbit[i])
hostbit.sort(function s(a,b){return b-a});}function calcBeginIP(){__pointer = 0;var increment = 0;var carry_num = 0;var startIP_String = "";var startIP_Array  = new Array();beginIP[0] = document.getElementById("inp_startIP").value;for(var i=1; i<=netcount; i++){startIP_Array = beginIP[i-1].split(".");for(var x in startIP_Array)startIP_Array[x]-=0;increment = 1<<hostbit[__pointer];startIP_Array[3] += increment;for(var j=3; j>0; j--){carry_num = Math.floor(startIP_Array[j] / 256);startIP_Array[j] %= 256;startIP_Array[j-1] += carry_num;}__pointer++;beginIP[i] = startIP_Array.join(".");}}function  calcNetMask(){var str="";for(var i=0; i<netcount; i++){var n = hostbit[i]-0;if( n==32 )str = "0.0.0.0";else if( n>24 )str = changeToNum(n-24) + ".0.0.0";else if( n>16 )str = "255."            + changeToNum(n-16) + ".0.0";else if( n>8  )str = "255.255."        + changeToNum(n-8)  + ".0"else           str = "255.255.255."    + changeToNum(n)netmask[i] = str}}function  calcTheMain(i){var calcresult = "";var network_string   = beginIP[i]      //获取网络号var netmask_string   = netmask[i]      //获取子网号var broadcast_string = beginIP[i+1]    //获取下个网络号var network_array   = network_string.split(".")var netmask_array   = netmask_string.split(".")var broadcast_array = broadcast_string.split(".")  for(var j=3; j>0; j--){        //计算广播地址if(--broadcast_array[j] < 0)          //如果不够减先前借一位broadcast_array[j]=255;elsebreak;            //如果够减了,退出循环
     }if( broadcast_array[3]%2 == 0){    //如果最后一位是偶数
          alert("计算错误,广播地址意外为偶数!");return ;}var broadcast_string = broadcast_array.join(".")network_array[3]-=0;            //计算首个地址network_array[3]+=1;var firstaddr_string = network_array.join(".")broadcast_array[3]-=0;            //计算最后地址broadcast_array[3]-=1;var lastaddr_string = broadcast_array.join(".")calcresult += "<tr>";calcresult += "<td>"+ network_string   +"</td>";calcresult += "<td>"+ netmask_string   +"</td>";calcresult += "<td>"+ firstaddr_string +"</td>";calcresult += "<td>"+ lastaddr_string  +"</td>";calcresult += "<td>"+ broadcast_string  +"</td>";   calcresult += "</tr>";document.getElementById("table_showResult").innerHTML += calcresult;}function  changeToNum(n){if(n==0)return 255;if(n==1)return 254;if(n==2)return 252;if(n==3)return 248;if(n==4)return 240;if(n==5)return 224;if(n==6)return 192;if(n==7)return 128;if(n==8)return 0;   }//for(var i=0; i<4; i++)            //计算广播地址//   broadcast_array[i] = network_array[i] & (~netmask_array[i]+256)//var broadcast_string = broadcast_array.join(".")</script>

 

 

转载于:https://www.cnblogs.com/demonxian3/p/7903073.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tmux颜色高亮跟vim不一致的情况

安装完tmux之后&#xff0c;按照网上大神的配置&#xff0c;稍微配置了下~/.tmux.conf&#xff1a; # 改变快捷键前缀 unbind C-b set -g prefix C-a # 绑定配置加载按键 bind r source-file ~/.tmux.conf \; display-message "Config reloaded.."# 设置终端类型为2…

html5表白页面3d,七夕节表白3d相册制作(html5+css3)

七夕节表白3d相册制作涉及知识点定位阴影3d转换动画主要思路&#xff1a;通过定位将所有照片叠在一起&#xff0c;在设置默认的样式以及照片的布局&#xff0c;最后通过设置盒子以及照片的旋转动画来达到效果。代码如下&#xff1a;3d相册/* 使用单位将所有照片叠在一起 */img{…

(1)pandas 基础教程

步骤1、环境准备 右击桌面上选择【Open in Terminal】 打开终端。在弹出的终端中输入【ipython】进入Python的解释器中&#xff0c;如图1所示。 图1 ipython解释器步骤2、导入所需要的包 导入实验常用的python包。如图2所示。【import pandas as pd】pandas用来做数据处理。【i…

CSS3效果:波浪效果

实现效果 如图所示&#xff1a; 首先得准备三张图&#xff0c;一张是浅黄色的背景图loading_bg.png&#xff0c;一张是深红色的图loading.png&#xff0c;最后一张为bolang.png。 css代码 body{background:#ffe894;}.loading_bg{width:113px; height:111px;background:url(lo…

html创建文件域的代码,word如何插入域代码

在word里怎么进行域代码的设置&#xff1f;如果知道要插入的域的域代码&#xff0c;可以将其直接键入在文档中。首先按 CtrlF9&#xff0c;然后在括号中键入代码就可以了。【Word插入域方法】1、Word2007中&#xff0c;在要插入域的位置单击。2、在“插入”选项卡上的“文字”组…

前端页面适配的rem换算

为什么要使用rem 之前有些适配做法&#xff0c;是通过js动态计算viewport的缩放值&#xff08;initial-scale&#xff09;。 例如以屏幕320像素为基准&#xff0c;设置1&#xff0c;那屏幕375像素就是375/3201.18以此类推。 但直接这样强制页面缩放过于粗暴&#xff0c;会导致页…

css清除浮动

css设计浮动属性的主要目的&#xff0c;是为了实现文本绕排图片的效果。 一.浮动 当浮动一张图片或者其他元素时&#xff0c;浏览器会将浮动元素往上方推&#xff0c;直到它碰到父元素的内边界。后面的元素不再认为浮动元素在文档流中位于它的前面了&#xff0c;因为它就会占…

gitlab搭建配置;ssh配置;

1.centos7上搭建gitlab&#xff0c;过程略&#xff1b; 命令&#xff1a;gitlab-ctl [start] [stop] [restart] [reconfigure] [tail] 查看gtilab日志 [status] 查看gitlab运行状态信息 2.修改默认ip端口&#xff1a; vim /etc/gitlab/gitlab.rb &#xff1b; external_url h…

家用计算机历史记录,教您如何查看电脑使用记录

很多朋友想查看自己之前使用过的文件或者文档来查询资料&#xff0c;或者是想看电脑是否被人使用过&#xff0c;但是&#xff0c;如何查看电脑使用记录呢&#xff1f;下面系统之家小编教大家查看电脑使用记录小技巧&#xff0c;不用担心找不到电脑使用记录。希望对大家有所帮助…

类的无参方法和Doc注释

一:Java Doc注释: 语法: /** *AccpSchool 类 *author JadeBird *version 1.0 2018/5/26 */ Java Doc是前Sun公司提供的一种技术,它能够从程序代码中抽取类,方法,成员等的注释,形成一个和源代码配套的API帮助文档(简答地说,就是介绍该类,类的方法和成员变量的文档). 因此只要在编…

Spring MVC,Ajax和JSON第3部分–客户端代码

如果您一直关注有关Spring&#xff0c;Ajax和JSON的简短博客系列&#xff0c;那么您会回想起我到目前为止已经创建了一个Spring MVC Web应用程序&#xff0c;该应用程序显示一个表单&#xff0c;该表单允许用户选择一堆项目并向服务器提交购买请求。 然后&#xff0c;服务器用一…

笔记36 Spring Web Flow——配置

Spring Web Flow是一个Web框架&#xff0c;它适用于元素按规定流程运行的程序。Spring Web Flow是Spring MVC的扩展&#xff0c;它支持开发基于流程的应用程 序。它将流程的定义与实现流程行为的类和视图分离开来。在介绍Spring Web Flow的时候&#xff0c;我们将暂时放下Spitt…

一些关于Viewport与device-width的东西~(转)

内容转自 http://www.cnblogs.com/koukouyifan/p/4066567.html 非常感谢 口口一凡 为我们提供的这篇文章&#xff0c;受益匪浅&#xff0c;特地转到自己的博客收藏起来。 以下是原文内容。 进行移动web开发已经有一年多的时间了&#xff0c;期间遇到了一些令人很困惑的东西。…

创建委托登录模块(用于JBoss EAP 6.1)

[如果只想查看代码&#xff0c;请向下滚动] 动机 在RHQ中&#xff0c;我们需要一个安全域&#xff0c;该域可用于通过容器管理的安全性来保护REST-api及其Web应用程序。 过去&#xff0c;我只是使用经典的DatabaseServerLoginModule对DatabaseServerLoginModule进行身份验证。 …

【C++】开源:FLTK图形界面库配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍FLTK图形界面库配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0…

蜗牛学院:中国人,努力获得了荣誉却要压抑克制

上周&#xff0c;在取得双11三连冠的佳绩之后&#xff0c;百雀羚顺势推出了一支视频广告《你应该骄傲》。 广告内容感动了无数人&#xff0c;并在广告圈和自媒体引发了持续刷屏。&#xff08;视频见文末&#xff09; 从《一九三一》到《韩梅梅快跑》&#xff0c;百雀羚今年多次…

学计算机专业独立显卡有必要吗,不玩游戏独立显卡有什么作用_如果不玩游戏需要选择独立显卡吗-系统城...

现在有些笔记本刚买来的时候会有自带的独立显卡和集成显卡&#xff0c;有些朋友在买了笔记本后并不想玩游戏&#xff0c;这时候他们就有了一个疑问不玩游戏独立显卡有什么作用呢&#xff1f;如果不玩游戏需要选择独立显卡吗&#xff1f;小编在这里就给大家带来电脑独立显卡的作…

Spring JMS,消息自动转换,JMS模板

在我的一个项目中&#xff0c;我应该创建一个消息路由器&#xff0c;就像所有路由器都应该从一个主题中提取JMS消息并将其放入另一个主题中一样。 该消息本身是JMS文本消息&#xff0c;实际上包含XML消息。 收到消息后&#xff0c;我还应该添加一些其他数据来丰富消息。 我们不…

前端人英语学习的那点事儿

小时候英语学得不好&#xff0c;这个不能怪老师。后来自己想&#xff1a;反正以后我也不出国&#xff0c;加之学习方法不对&#xff0c;英语水平比较差劲、工作之后才发现&#xff0c;英语真是重要、第一手资料几乎都是英文的&#xff0c;很多前端书籍翻译得都挺那啥的&#xf…

大学物理质点动力学思维导图_生理学 | 思维导图

1.声明&#xff1a;第一部分的思维导图来源于网络&#xff0c;但是早就被传疯了。还是一句话&#xff0c;侵删。2.后面明显高清的思维导图是我自己画的,有版权.已经在公众号(id : 医学猿MIT)上传。下面来源&#xff1a;网络▲物质的跨膜转运▲肌细胞的收缩▲血液▲一级消除动力…