DHCP设置之起始地址与结束地址

来源:互联网 发布:歌斐资产 知乎 编辑:程序博客网 时间:2024/06/05 10:09

路由器设置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);



阅读全文
0 0