精华内容
下载资源
问答
  • DHCP设置之起始地址结束地址
    千次阅读
    2017-08-21 10:39:20

    路由器设置ip地址,subnet mask,dhcpstart,dhcpend时,后台应该如何判断:

    //get data

    ipstart=websGetVar(wp, T("start"), T(""));

    ipend=websGetVar(wp, T("end"), T(""));

    ip = websGetVar(wp, T("lanIp"), T(""));

    nm = websGetVar(wp, T("lanNetmask"), T(""));



    sscanf(ipstart, "%d.%d.%d.%d", &s1, &s2, &s3, &s4);
    sscanf(ipend, "%d.%d.%d.%d", &e1, &e2, &e3, &e4);
    sscanf(ip, "%d.%d.%d.%d", &ip1, &ip2, &ip3, &ip4);

    sscanf(nm, "%d.%d.%d.%d", &m1, &m2, &m3, &m4);


        s1 = (ip1&m1) | (s1&~m1);
        s2 = (ip2&m2) | (s2&~m2);
        s3 = (ip3&m3) | (s3&~m3);
        s4 = (ip4&m4) | (s4&~m4);

        e1 = (ip1&m1) | (e1&~m1);
        e2 = (ip2&m2) | (e2&~m2);
        e3 = (ip3&m3) | (e3&~m3);
        e4 = (ip4&m4) | (e4&~m4);

     

    //假如主机ip在subnet mask之外,dhcpstart,dhcpend就得重新定义

        if (ip4 > (255 - m4)) {
            s4 = 1;
            e4 = 255 - m4;
        }  


        snprintf(dhcp_start,sizeof(dhcp_start),"%d.%d.%d.%d",s1,s2,s3,s4);
        snprintf(dhcp_end,sizeof(dhcp_end),"%d.%d.%d.%d",e1,e2,e3,e4);



    更多相关内容
  • EXCEL表格IP,计算起始地址和终止地址!子网掩码的测算,起始地址和终止地址中间IP地址的填充公式!
  • 需求:给出ip/掩码的形式,求出起始地址和结束地址,例如6.61.252.0/24的起始地址为6.61.252.1,结束地址为6.61.252.254。代码:因为我是在页面做处理,所以写的是js代码1、计算起始地址 传入的参数第一个为ip,...

    需求:给出ip/掩码的形式,求出起始地址和结束地址,例如6.61.252.0/24的起始地址为6.61.252.1,结束地址为6.61.252.254。

    代码:因为我是在页面做处理,所以写的是js代码

    1、计算起始地址
    传入的参数第一个为ip,比如例子中的6.61.252.0。第二个参数为掩码的ip格式,例子中给出的是整数形式,需要进行转换,转换代码见下面

    /**
     * 计算子网起始地址(不包括网络地址)
     * 
     */
    function getLowAddr(ip, netMask){
        var lowAddr = "";
        var ipArray = new Array();
        var netMaskArray = new Array();
        // I参数不正确
        if (4 != ip.split(".").length || "" == netMask)
        {
            return "";
        }
        for (var i = 0; i < 4; i++)
        {
            ipArray[i] = ip.split(".")[i];
            netMaskArray[i] = netMask.split(".")[i];
            if (ipArray[i] > 255 || ipArray[i] < 0 || netMaskArray[i] > 255
                    && netMaskArray[i] < 0)
            {
                return "";
            }
            ipArray[i] = ipArray[i] & netMaskArray[i];
        }
        // 构造最小地址
        for (var i = 0; i < 4; i++)
        {
            if(i == 3){
                ipArray[i] = ipArray[i] + 1;
            }
            if ("" == lowAddr){
                lowAddr +=ipArray[i];
            } else{
                lowAddr += "." + ipArray[i];
            }
        }
        return lowAddr;
    }

    2、计算结束地址

    /**
     * 计算子网终止地址(不包括广播地址)
     */
    function getHighAddr(ip,netMask){
        var lowAddr = getLowAddr(ip,netMask);
        var hostNumber = getHostNumber(netMask);
        if("" == lowAddr || hostNumber == 0){
            return "";
        }
    
        var lowAddrArray = new Array();
        for(var i = 0; i < 4; i++){
            lowAddrArray[i] = lowAddr.split(".")[i];
            if(i == 3){
                lowAddrArray[i] = Number(lowAddrArray[i] - 1);
            }
        }
        lowAddrArray[3] = lowAddrArray[3] + Number(hostNumber - 1);
        //alert(lowAddrArray[3]);
        if(lowAddrArray[3] > 255){
            var k = parseInt(lowAddrArray[3] / 256);
            //alert(k);
            lowAddrArray[3] = lowAddrArray[3] % 256;
            //alert(lowAddrArray[3]);
            lowAddrArray[2] = Number(lowAddrArray[2]) + Number(k);
            //alert(lowAddrArray[2]);
            if(lowAddrArray[2] > 255){
                k = parseInt(lowAddrArray[2] / 256);
                lowAddrArray[2] = lowAddrArray[2] % 256;
                lowAddrArray[1] = Number(lowAddrArray[1]) + Number(k);
                if(lowAddrArray[1] > 255){
                    k = parseInt(lowAddrArray[1] / 256);
                    lowAddrArray[1] = lowAddrArray[1] % 256;
                    lowAddrArray[0] = Number(lowAddrArray[0]) + Number(k);
                }
            }
        }
    
        var highAddr = "";
        for(var i = 0; i < 4; i++){
            if(i == 3){
                lowAddrArray[i] = lowAddrArray[i] - 1;
            }
            if("" == highAddr){
                highAddr = lowAddrArray[i];
    
            }else{
                highAddr += "." + lowAddrArray[i];
            }
        }
    
        return highAddr;
    }

    3、获取主机数

    /**
     * 获取主机数
     * 
     * @param netMask
     * @returns {Number}
     */
    function getHostNumber(netMask){
        var hostNumber = 0;
        var netMaskArray = new Array();
        for(var i = 0; i < 4; i++){
            netMaskArray[i] = netMask.split(".")[i];
            if(netMaskArray[i] < 255){
                hostNumber = Math.pow(256,3-i) * (256 - netMaskArray[i]);
                break;
            }
        }
    
        return hostNumber;
    }

    4、将整数形式的掩码转换成ip格式

    /**
         * 转换掩码的格式
         */
        function getNetMask(inetMask){
            var netMask = "";
            if(inetMask > 32){
                return netMask;
            }
            //子网掩码为1占了几个字节
            var num1 = parseInt(inetMask / 8);
            //子网掩码的补位位数
            var num2 = inetMask % 8;
            var array = new Array();
            for(var i = 0; i < num1; i++){
                array[i] = 255;
            }
            for(var i = num1; i < 4; i++){
                array[i] = 0;
            }
            for(var i = 0; i < num2; num2--){
                array[num1] += Math.pow(2,8-num2);
            }
            netMask = array[0] + "." + array[1] + "." + array[2] + "." + array[3];
    
            return netMask;
        }
    展开全文
  • 网上根据IP/掩码位数获取起始地址的方法大多是JS代码实现.项目需要在后台进行处理.提供一份根据IP/掩码获取起始地址通过java代码实现 //IP String ip = "192.168.3.0"; //掩码位数 String mask = "24"; 1.根据...

    网上根据IP/掩码位数获取起始地址的方法大多是JS代码实现.项目需要在后台进行处理.提供一份根据IP/掩码获取起始地址通过java代码实现

    //IP  
    String ip = "192.168.3.0";  
    //掩码位数  
    String mask = "24";

    1.根据掩码位数获取掩码

    /** 
     * 根据掩码位数获取掩码 
     */  
    private static String getNetMask(String mask) {  
        int inetMask =Integer.parseInt(mask);  
        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] += Math.pow(2, 8-num2);  
        }  
        String netMask =  array[0] + "." + array[1] + "." + array[2] + "." + array[3];  
        return netMask;  
    }  

    2.根据ip地址和掩码获取起始IP

    private String getLowAddr(String ipinfo, String netMask) {  
        String lowAddr = "";  
        int ipArray[] = new int[4];  
        int netMaskArray[] = new int[4];  
        if(4 != ipinfo.split("\\.").length || "" == netMask){  
            return null;  
        }  
        for (int i = 0; i < 4; i++) {  
            try{  
                ipArray[i] = Integer.parseInt(ipinfo.split("\\.")[i]);  
            }catch(NumberFormatException e){  
                String ip = ipinfo.replaceAll("\n", "");  
                ipArray[i] = Integer.parseInt(ip.split("\\.")[i]);  
            }  
            netMaskArray[i] = Integer.parseInt(netMask.split("\\.")[i]);  
            if(ipArray[i] > 255 || ipArray[i] < 0 || netMaskArray[i] > 255 || netMaskArray[i] < 0){  
                        return null;  
            }  
            ipArray[i] = ipArray[i]&netMaskArray[i];  
        }  
        //构造最小地址  
        for (int i = 0; i < 4; i++){  
            if(i == 3){  
                ipArray[i] = ipArray[i] + 1;  
            }  
            if ("" == lowAddr){  
                lowAddr +=ipArray[i];  
            } else{  
                lowAddr += "." + ipArray[i];  
            }  
        }  
        return lowAddr;  
    }  

    3.根据ip地址和掩码获取终止IP

    private String getHighAddr(String ipinfo, String netMask) {  
        String lowAddr = getLowAddr(ipinfo, netMask);  
        int hostNumber = getHostNumber(netMask);  
        if("" == lowAddr || hostNumber == 0){  
            return null;  
        }  
        int lowAddrArray[] = new int[4];  
        for (int i = 0; i < 4; i++) {  
            lowAddrArray[i] = Integer.parseInt(lowAddr.split("\\.")[i]);  
            if(i == 3){  
                lowAddrArray[i] = lowAddrArray[i] - 1;  
            }  
        }  
        lowAddrArray[3] = lowAddrArray[3] + (hostNumber - 1);  
        if(lowAddrArray[3] >255){  
            int k = lowAddrArray[3] / 256;  
            lowAddrArray[3] = lowAddrArray[3] % 256;  
            lowAddrArray[2] = lowAddrArray[2] + k;  
        }  
        if(lowAddrArray[2] > 255){  
            int  j = lowAddrArray[2] / 256;  
               lowAddrArray[2] = lowAddrArray[2] % 256;  
               lowAddrArray[1] = lowAddrArray[1] + j;  
               if(lowAddrArray[1] > 255){  
                   int  k = lowAddrArray[1] / 256;  
                   lowAddrArray[1] = lowAddrArray[1] % 256;  
                   lowAddrArray[0] = lowAddrArray[0] + k;  
               }  
           }  
        String highAddr = "";  
        for(int i = 0; i < 4; i++){  
            if(i == 3){  
                lowAddrArray[i] = lowAddrArray[i] - 1;  
            }  
            if("" == highAddr){  
                highAddr = lowAddrArray[i]+"";  
            }else{  
                highAddr += "." + lowAddrArray[i];  
            }  
        }  
        return highAddr;  
    }  
    

    4.ip转换Long

    private long ip2long(String ip) {  
        String[] ips = ip.split("[.]");  
        long num = 16777216L * Long.parseLong(ips[0]) + 65536L  
                * Long.parseLong(ips[1]) + 256 * Long.parseLong(ips[2])  
                + Long.parseLong(ips[3]);  
        return num;  
    }  

    5.实际可用ip数量

    private int getHostNumber(String netMask) {  
        int hostNumber = 0;  
        int netMaskArray[] = new int[4];  
        for (int i = 0; i < 4 ; i++) {  
            netMaskArray[i] = Integer.parseInt(netMask.split("\\.")[i]);  
            if(netMaskArray[i] < 255){  
                hostNumber =  (int) (Math.pow(256,3-i) * (256 - netMaskArray[i]));  
                break;  
            }  
        }  
        return hostNumber;  
    }  

    注意:通过上面获取到的开始和结束IP是第一个可用最后一个可用IP,以掩码位数为24位的为例.一个网段0一般为网络地址,255一般为广播地址.



    另外:获取的可用IP数量为256是包含网络地址和广播地址的.这一点一定要清楚.





    展开全文
  • 内存容量、起始地址结束地址的计算方法


    学习目标:


    内存容量、起始地址或结束地址的计算方法



    学习内容:

    内存是按字节编址的,所以单位是字节(byte、bytes),1字节可是等于8位(bit)的。

    因为计算的范围一般比较小,所以就记住两个就够了。

    记住几个常用的2的10次方为1024即1KB
    12bit-->2^12=4096byte、

    G代表2^10 x 2^10 x2^10 = 2^30。

    公式:
        内存容量=末地址-首地址+1



    如何用计算器算:

    (1)打开电脑上的计算器

    (2)以图片展示

     点击左上角的“三”找到程序员(programer)



    学习产出:

    以例子为证:

    (1)

    容量为4K

    4K*8bit = 4KB即2的平方乘以2的10次方,2的12次方,12/4=3(转为16进制)即1000H

    01000H=末地址-6800H+1H

    末地址=01000H+6800H-1H

     末地址=077FFH

    (2)SRAM起始于20000000H,容量为20kBytes,计算结束地址

    20*1024=20480————=5000H

    5000H=?-20000000+1

    ?=20004FFF

    展开全文
  • 得到 ip/掩码 的起始结束地址

    千次阅读 2019-03-29 11:00:33
    需求:给出ip/掩码的形式,求出起始地址和结束地址,例如6.61.252.0/24的起始地址为6.61.252.1,结束地址为6.61.252.254。 代码:因为我是在页面做处理,所以写的是js代码 1、计算起始地址 传入的参数第一个为ip...
  • IPv6地址转换

    2012-05-25 23:45:55
    IPv6AddressConverter IPv6地址转换 字符串
  • IP地址的计算方式

    千次阅读 2022-03-11 16:22:21
    子网掩码只有一个作用,就是将某个IP地址划分为网络地址和主机地址两部分 给你一个IP掩码你知道有效IP的个数吗? 2的(32-掩码)次方-2 起始位网关,末位广播,所以掩码为30的有效IP就两个 那它的有效IP 起始
  • 地址和段寄存器

    千次阅读 2020-09-16 10:45:28
    即段地址和偏移地址地址随意定义只要找到物理地址就行 2、段寄存器 段寄存器就是提供段地址的 8086CPU有4个段寄存器 CS、DS、SS、ES当8086要访问内存时,由这4个段寄存器提供内存单元的段地址 CSIP是.
  • 7、己知段地址:偏移地址分别为以下数值,它们的物理地址各是什么? (1)1200:3500H 答: 物理地址为 1200H x 16 + 3500H = 15500H (2)FF00:0458H 答: 物理地址为 FF00H x 16 + 0458H = FF458H (3)3A60:0100H 答: ...
  • delphi 得到IP起始结束地址
  • C/C++数组首元素的地址和数组地址的区别

    千次阅读 多人点赞 2019-02-22 11:19:57
    1、首先数组首元素的地址和数组地址的值是相等的。 2、数组首元素的地址和数组地址是两个不同的概念。 3、举例如下: #include&lt;stdio.h&gt; void main() { int a[10] = {}; printf("%d\n&...
  • ND中的标志位说明:M位(managed-config-flag) 置位后,始发路由器就会利用DHCPv6协议来告诉链路上的主机使用有状态地址自动配置,不置位则无状态地址自动配置。O位(other-config-flag) 置位后,始发路由器就会告诉...
  • 问:已知开始地址(1.1.1.0)、结束地址(1.1.1.255);开始地址(1.1.2.3)、结束地址(1.1.2.12);开始地址(1.2.1.0)、结束地址(1.2.4.255);开始地址(1.1.6.0)、结束地址(1.1.8.212);求其中的所有IP...
  • 获取某一年的起始时间和结束时间

    千次阅读 2019-11-15 17:53:46
    Date第三个参数设置为1可获得该月的起始时间 Date第三个参数设置为0可获得该月的结束时间 返回的日期格式是 Tue Dec 31 2019 00:00:00 GMT+0800 (中国标准时间) 这种的 可以用正则表达式把它转换为 yyyy-MM-dd HH:mm...
  • /** ...因为一个网段0一般为网络地址,255一般为广播地址, 所以第一个可用IP起始IP计算:网段与掩码相与之后加一的IP地址结束IP为通过计算需要的所有IP数然后做累加运算,超过256则进位进行运算。
  • Java获取当天的起始时间和结束时间

    千次阅读 2020-10-14 14:41:08
    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Test { public static void main(String[] args) throws Exception { SimpleDateFormat sdf = new ...
  • // 根据起始日期和结束日期获取时间段数组 function getAllDate(day1, day2) { var getDate = function(str) { var tempDate = new Date(); var list = str.split("-"); tempDate.setFullYear(list[0]...
  • 计算机中存储常用的地址大小计算

    千次阅读 2020-03-04 21:38:34
    起始地址0x0_0000_0000 0x代表十六进制 地址大小32MB 十进制 32MB=32x1024x1024B=33554432B 十进制转十六进制后为0200_0000 因此结束地址为0x0_0200_0000 3、常用的十六进制到十进制转换 0400对应为1kb 1_0000对应为...
  • 5.把待烧写的bin文件拖入,此时会提示输入烧写地址,这里的烧写地址一般是芯片FLASH的起始地址(因为我们所写的程序都是下载到FLASH中的),且必须在FLASH的内存范围内(编译后程序的大小必须小于FLASH的大小),...
  • 得到本周、上周、下周的起始结束日期 function getMonday(type, dates) { var now = new Date(); var nowTime = now.getTime(); var day = now.getDay(); var longTime = 24 * 60 * 60 * 1000; var n = longTime ...
  • 为什么HTML标签起始和结束标志不同

    千次阅读 2019-05-07 15:53:07
    # 再删除标签起始符号 >>> title_new = re.sub(r'*>', "", title_new) >>> title_new '【羽生结弦】190429 平成的红白' # 这个操作可以合并到一起,也就是: >>> title_new = re.sub(r'*>', "", re....
  • 直接上代码 SELECT DATE_FORMAT( str_to_date( '2019-04-28 18:23:11', '%Y-%m-%d %k:%i:%s' ), '%Y-%m-%d' ) AS 'now day', CONCAT_WS( '-', from_unixtime( UNIX_TIMESTAMP( ......
  • 源代码下载地址: https://github.com/yangboduan/genip/blob/master/genip.sh 执行结果:
  • //起始X轴 let end = myChart.getModel().option.xAxis[0].data[endValue];//结束X轴 console.log("开始值="+start); console.log("结束值="+end); //拖拽滚动条的获取X轴的范围值,使用方法如下: myChart.on('...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 440,883
精华内容 176,353
关键字:

起始地址和结束地址

友情链接: ArcsObjectandVC.rar