精华内容
下载资源
问答
  • IP地址的合法性及子网判断

    热门讨论 2009-06-25 14:37:45
    判断时要考虑全面,比如以下IP地址均不合法:  123..2.1  123.23$.2.1  123.2345.2.1  123.23.45.2.1 C)判断掩码的合法性。 D)在IP地址合法的前提下,判断ip_addr是否属于子网subnet。 E)输出...
  • 要求:1)以命令行格式运行:ip_test subnet/mask ip_addr ...4) 在IP地址合法的前提下,判断ip_addr是否属于子网subnet 5)输出命令行中的IP是否合法,掩码是否合法(可适当给出不合法原因)以及ip_addr
  • 1)以命令行格式运行:ip_test subnet/mask ip_addr ...4) 在IP地址合法的前提下,判断ip_addr是否属于子网subnet 5)输出命令行中的IP是否合法,掩码是否合法(可适当给出不合法原因)以及ip_add
  • 【iOS work】判断ip地址是否合法

    千次阅读 2015-10-09 19:44:10
    写一个程序输出以下ip列表(21.45.34.112,0.25.132.143,20.268.56.10)是否是合法的ip。(注:ip第一位不能为0,每一位不能超过255)   答案:   #import <Foundation/Foundation.h> //创建...

    题目:

    写一个程序输出以下ip列表(21.45.34.112,0.25.132.143,20.268.56.10)是否是合法的ip。(注:ip第一位不能为0,每一位不能超过255)

     

    答案:

     

    #import <Foundation/Foundation.h>
    
    //创建一个判断iP是否合法的方法
    int checkIP(const char* p)
    {   //申明用来存放字符的两个数组,一个是存数字的,一个是存点的
        int n[4];
        char c[4];
        
        //输入7位数格式的字符串,如果格式不对则返回值为0
        if (sscanf(p, "%d%c%d%c%d%c%d",
                   &n[0], &c[0], &n[1], &c[1],
                   &n[2], &c[2], &n[3])
            == 7)
        {
            //判断第一位是否为0
            if (n[0]==0) return 0;
            
            //判断每一位是否超过255
            int i;
            for(i = 0; i < 4; ++i)
                if (n[i] > 255 )
                return 0;
                 /*判断点格式是否正确,这部分题中没有要求,所以暂且注释掉
                 for(i = 0; i < 3; ++i) 
                    if (c[i] != '.')
                    return 0;*/
           
            //符合要求则返回值为1
            return 1;
        } else
            return 0;
    }
    
    int main(int argc, const char * argv[])
    {
       //要判断的数组,其中0是用来结束循环的
        const char* x[] =
        {
            "21.45.34.112",
            "0.25.132.143",
            "20.268.56.10",
            0
        };
        
        //m[0]为不合法,m[1]为合法
        const char* m[] =
        {
            "不是合法的IP地址",
            "是合法的IP地址"
        };
        
        //调用方法并输出结果
        int i = 0;
        while(x[i] != 0) {
            printf("%s %s \n", x[i], m[checkIP(x[i])]);
            i++;
        }
        
        return 0;
    }
    

    主要知识点:

     

    数组、判断语句、循环语句的应用。

     

    关联知识点:

    如何读取输入的字符串并存储每一个字符

    声明可能出现的同类型的数组,比如ip地址包括int型的数字、char型的点

    所以我们只需声明两个数组:int n[4];  char c[4];

    再对其进行输入存储就OK拉⬇️

     

    sscanf(p, "%d%c%d%c%d%c%d",
                   &n[0], &c[0], &n[1], &c[1],
                   &n[2], &c[2], &n[3])
    


    其中%d是对应整型int

     

    %c对应字符型char

    关于OC的变量和基本的数据类型可参见:

    http://blog.csdn.net/fifteen718/article/details/49005319
     

    展开全文
  • 要求:1)以命令行格式运行:ip_test subnet/mask ...4) 在IP地址合法的前提下,判断ip_addr是否属于子网subnet 5)输出命令行中的IP是否合法,掩码是否合法(可适当给出不合法原因)以及ip_addr是否属于子网subnet。
  • 写一个程序输出以下ip列表(21.45.34.112,0.25.132.143,20.268.56.10)是否是合法的ip。(注:ip第一位不能为0,每一位不能超过255) 答案: #import <Foundation/Foundation.h> //创建一个判断iP是否...

    题目:

    写一个程序输出以下ip列表(21.45.34.112,0.25.132.143,20.268.56.10)是否是合法的ip。(注:ip第一位不能为0,每一位不能超过255)


    答案:

    #import <Foundation/Foundation.h>
    
    //创建一个判断iP是否合法的方法
    int checkIP(const char* p)
    {   //申明用来存放字符的两个数组,一个是存数字的,一个是存点的
        int n[4];
        char c[4];
        
        //输入7位数格式的字符串,如果格式不对则返回值为0
        if (sscanf(p, "%d%c%d%c%d%c%d",
                   &n[0], &c[0], &n[1], &c[1],
                   &n[2], &c[2], &n[3])
            == 7)
        {
            //判断第一位是否为0
            if (n[0]==0) return 0;
            
            //判断每一位是否超过255
            int i;
            for(i = 0; i < 4; ++i)
                if (n[i] > 255 )
                return 0;
                 /*判断点格式是否正确,这部分题中没有要求,所以暂且注释掉
                 for(i = 0; i < 3; ++i) 
                    if (c[i] != '.')
                    return 0;*/
           
            //符合要求则返回值为1
            return 1;
        } else
            return 0;
    }
    
    int main(int argc, const char * argv[])
    {
       //要判断的数组,其中0是用来结束循环的
        const char* x[] =
        {
            "21.45.34.112",
            "0.25.132.143",
            "20.268.56.10",
            0
        };
        
        //m[0]为不合法,m[1]为合法
        const char* m[] =
        {
            "不是合法的IP地址",
            "是合法的IP地址"
        };
        
        //调用方法并输出结果
        int i = 0;
        while(x[i] != 0) {
            printf("%s %s \n", x[i], m[checkIP(x[i])]);
            i++;
        }
        
        return 0;
    }
    
    主要知识点:

    数组、判断语句、循环语句的应用。


    关联知识点:

    如何读取输入的字符串并存储每一个字符

    声明可能出现的同类型的数组,比如ip地址包括int型的数字、char型的点

    所以我们只需声明两个数组:int n[4];  char c[4];

    再对其进行输入存储就OK拉⬇️

    sscanf(p, "%d%c%d%c%d%c%d",
                   &n[0], &c[0], &n[1], &c[1],
                   &n[2], &c[2], &n[3])
    

    其中%d是对应整型int

    %c对应字符型char

    关于OC的变量和基本的数据类型可参见:

    http://blog.csdn.net/fifteen718/article/details/49005319

    转载于:https://www.cnblogs.com/fifteen718/p/9533986.html

    展开全文
  • C++判断IP地址字符串的合法

    万次阅读 2017-08-02 18:28:54
    目前解决方法可以归为以下三类: 1、自己动手写:以'.'将IP字符串分割成子串,再依次判断每... 判断IP地址是否有效 接口函数: booli sIPAddressValid ( const char * pszIPAddr ) 输入: pszIPAddr 字符串 输

    目前的解决方法可以归为以下三类:

    1、自己动手写:以'.'将IP字符串分割成子串,再依次判断每个子串的每个字符是否都是数字,最后转换成值,判断是否在0~255的范围。

    /* 
    功能: 
        判断IP地址是否有效 
    接口函数: 
        booli sIPAddressValid ( const char *  pszIPAddr ) 
    输入:  
        pszIPAddr  字符串 
    输出: 
        true 有效的IP地址,false,无效的IP地址 
    约束: 
        1.输入IP为XXX.XXX.XXX.XXX格式 
        2.字符串两端含有空格认为是合法IP 
        3.字符串中间含有空格认为是不合法IP 
        4.类似于 01.1.1.1, 1.02.3.4  IP子段以0开头为不合法IP 
        5.子段为单个0 认为是合法IP,0.0.0.0也算合法I 
    */  
    #include <iostream>  
    #include <cstring>  
    using namespace std;  
      
    bool isIPAddressValid(const char* pszIPAddr)  
    {  
        if (!pszIPAddr) return false; //若pszIPAddr为空  
        char IP1[100],cIP[4];  
        int len = strlen(pszIPAddr);  
        int i = 0,j=len-1;  
        int k, m = 0,n=0,num=0;  
        //去除首尾空格(取出从i-1到j+1之间的字符):  
        while (pszIPAddr[i++] == ' ');  
        while (pszIPAddr[j--] == ' ');  
          
        for (k = i-1; k <= j+1; k++)  
        {  
            IP1[m++] = *(pszIPAddr + k);  
        }       
        IP1[m] = '\0';  
          
        char *p = IP1;  
      
        while (*p!= '\0')  
        {  
            if (*p == ' ' || *p<'0' || *p>'9') return false;  
            cIP[n++] = *p; //保存每个子段的第一个字符,用于之后判断该子段是否为0开头  
      
            int sum = 0;  //sum为每一子段的数值,应在0到255之间  
            while (*p != '.'&&*p != '\0')  
            {  
              if (*p == ' ' || *p<'0' || *p>'9') return false;  
              sum = sum * 10 + *p-48;  //每一子段字符串转化为整数  
              p++;  
            }  
            if (*p == '.') {  
                if ((*(p - 1) >= '0'&&*(p - 1) <= '9') && (*(p + 1) >= '0'&&*(p + 1) <= '9'))//判断"."前后是否有数字,若无,则为无效IP,如“1.1.127.”  
                    num++;  //记录“.”出现的次数,不能大于3  
                else  
                    return false;  
            };  
            if ((sum > 255) || (sum > 0 && cIP[0] =='0')||num>3) return false;//若子段的值>255或为0开头的非0子段或“.”的数目>3,则为无效IP  
      
            if (*p != '\0') p++;  
            n = 0;  
        }  
        if (num != 3) return false;  
        return true;  
    }  
      
    void main()  
    {  
        char IP[] = " 254.1.1.1 ";  
        //char IP[100];  
        //cin >> IP;  
        bool tf = isIPAddressValid(IP);  
        cout << tf<<endl;  
        system("pause");  
    }  

    别人给的一个解决方案也很不错,充分利用了atoi函数的特性:遇到有字符的时候,只转换字符前的数字;转换完毕把字符串数组指针向后移。

    2、使用inet_addr(const char * str)函数。inet_addr()的功能是将一个点分十进制的IP转换成一个长整数型数(u_long类型)。丢给这个函数一个字符串,能成功转换就是合法的IP地址字符串,转换失败返回INADDR_NONE。若是不允许非标准形式的IP地址,则再加上对'.'的个数的判断。另外,INADDR_NONE即为255.255.255.255,因此此地址字符串不能正确转换。

    3、利用正则表达式!这个编写代码的效率又高又容易保证正确性,又容易维护。需要用boost中的regex库。唯一的缺点是,这是个静态链接库,编译的时候会慢一点,打包的时候体积也会增加。

    // boostTest.cpp : 定义控制台应用程序的入口点。  
    //  
      
    #include "stdafx.h"  
    #include <iostream>     
    #include <boost/xpressive/xpressive_dynamic.hpp>  
      
    //BOOST用正则表达式验证ip地址合法  
    bool CheckIP(const char *ip)  
    {  
        using namespace boost::xpressive;  
        /* 定义正则表达式 */  
        cregex reg_ip = cregex::compile("(25[0-4]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])[.](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])[.](25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])[.](25[0-4]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])");   
        return  regex_match(ip, reg_ip);  
    }  
      
    int _tmain(int argc, _TCHAR* argv[])    
    {    
        std::wcout<<"ip:"<<CheckIP("1247.0.0.1");  
      
        getchar();    
        return 0;    
    }  

    perl正则表达式语法
            perl正则表达式语法可参见《perl语言入门》第7、8、9章或boost的文档。这里列出的语法是不全面的,而且部分说明可能并不清楚。

            . 任意字符;使用match_no_dot_null标志时不匹配NULL字符; 使用match_not_dot_newline时不匹配换行字符

            ^ 匹配行的开始
            $ 匹配行的结束
            * 重复零次或则更多,例如a*b可匹配b,ab,aab,aaaaaaab
            + 重复一次以上,例如a+b可匹配ab,aab,aaaaaaaab。但不能匹配b了
            ? 零次或则一次,例如ca?b匹配cb,cab但不匹被caab    
            a{n} 匹配字符''a''重复n次
            a{n,},字符a重复n次以上(含n次)
            a{n,m} a重复n到m次(含)

            *?   匹配前一个原子零次以上
            +?   匹配前一个原子一次以上
            ??   匹配前一个原子零次以上
            {n,}?  匹配前一个原子n次以上(含)
            {n,m?  匹配前一个原子n到m次(含)

            | 或操作,例如ab(d|ef)匹配abd或则abef
            [] 字符集操作,例如[abc]将匹配任何单个字符''a'',''b'',''c''
            [a-d],表示a、b、c、d
            ^否操作,例如[^a-c]表示a至c之外的所有字符


    4、swscanf()函数,简洁高效

    BOOL isIpFormatRight(LPTSTR ipAddress)
    {//判断IP地址是否合法
    int a,b,c,d;
    if ((swscanf(ipAddress,L"%d.%d.%d.%d",&a,&b,&c,&d)==4)
    &&(a>=0&&a<=255)
    &&(b>=0&&b<=255)
    &&(c>=0&&c<=255)
    &&(d>=0&&d<=255))
    {
    return TRUE;
    }
    return FALSE;
    }



    展开全文
  • 汽车贴膜一种很受欢迎车辆装潢方式,能起到美观车辆、方便用车目的,不过呢,也不是想怎么贴就怎么贴,在国外,能贴什么膜早就被列入了交通法,而国内也不例外,只是很多人不了解罢了,以下要讲就是汽车贴膜...

    汽车贴膜是一种很受欢迎的车辆装潢方式,能起到美观车辆、方便用车的目的,不过呢,也不是想怎么贴就怎么贴,在国外,能贴什么膜早就被列入了交通法,而国内也不例外,只是很多人不了解罢了,以下要讲的就是汽车贴膜要怎么样才算合法,在路上不会被交警抓。

    110cee106eb7871018d096b8bc259f07.png

    一、车窗贴膜合法才能不被交警抓

    汽车玻璃的主要作用是透过光线并且保护车内人员,所选的汽车膜特别需要有良好清晰度,这关乎行车安全,如果贴膜不合法,那么被交警抓到了就要罚款+扣分,以下两点是车窗贴膜所必须要注意的:

    1、尽量贴颜色浅的汽车膜,尤其是前挡风玻璃,透光率需要达到70%;2、不能贴一些反光膜、贴纸类的车膜,正规厂家的合格产品一般都能用。

    c80ea8e773551c6463092e6d8ba385d6.png

    二、车身贴膜莫任性

    1、改色膜

    很多人贴改色膜的目的无非不是有两个:①改变爱车的颜色,也是给自己换个心情,凸显个性化追求;②不想补漆,贴个改色膜遮一下。但是呢,改色膜是很容易被交警抓的,因为它属于是汽车外观的明显变更,也相当于是改装的一种,所以要合法才行,可不能完全随着自己的喜好来,以下两点需要注意:

    3fa4d308d6475c630161685c9fd4bc62.png

    ·改的颜色不要太多:一般来说只改一种或两种颜色是没什么问题的,同时颜色不能太花或者模仿特殊车辆(消防车、警车等)的颜色,不同地区的改色要求可能会有不同,建议改之前先向车管所的工作人员咨询一下。

    ·应当及时备案:可以先贴改色膜再去备案,但是时间期限为10天,到车管所变更行驶证就好了,过程很简单,办理完手续后,改色贴膜就属于是合法的了,在道路上也就不会被交警抓住扣分。

    bfaf6e161843ce1f767087d227046979.png

    2、漆面保护膜(隐形车衣)z8zikukKAQCs-1574846824159.jpg隐形车衣不会改变车辆的颜色,所以不会有什么问题,新车在第一次验车前就能贴,但是要注意的是,亮光漆面贴哑光隐形车衣最好是也去做一个备案处理。

    以上就是“汽车贴膜怎么才能合法,上路不被交警抓”的解答,如果您还有什么疑问,也可以随时联系我们进行咨询。

    展开全文
  • 接下来用C语言来判断输入ip的过程中是不是正确的输入,主要判断以下几种情况合法的: 1、同时出现两个小数点或者以小数点开头 2、输入的小数点大于3 3、小数点之间的数字不在0~255之间 //把str字符串中,第一...
  • 101.IP地址

    2019-03-23 21:43:54
    最低的IP地址是0.0.0.0,最高的IP地址是255.255.255.255。 PS :方便起见,认为形似00.00.00.00的IP地址也是合法的。 输入格式 第一行是一个整数T,代表输入还剩下T行 以下的T行,每行都是一个字符串(不...
  • BUPT OJ101 IP地址

    千次阅读 2014-03-11 20:37:37
    最低的IP地址是0.0.0.0,最高的IP地址是255.255.255.255。 PS :方便起见,认为形似00.00.00.00的IP地址也是合法的。   输入格式 第一行是一个整数T,代表输入还剩下T行 以下的T行,每行
  • 这篇文章主要介绍了基于Java检查IPv6地址的合法性,文中通过示例代码介绍非常详细,对大家学习或者工作具有一定参考学习价值,需要朋友可以参考下由于IPv4资源即将耗尽,IPv6将要正式启用,这大势所趋。...
  • 最低的IP地址是0.0.0.0,最高的IP地址是255.255.255.255。 PS :方便起见,认为形似00.00.00.00的IP地址也是合法的。 输入格式 第一行是一个整数T,代表输入还剩下T行 以下的T行,每行都是一个字符串(不含空白字符...
  • 题目 推断输入字符串是不是一个有效的IP地址 具体描写叙述: ...输出:true 有效的IP地址,false,无效的IP地址 约束 输入IP为XXX.XXX.XXX.XXX格式 字符串两端含有空格觉得是合法IP 字符串中间...
  • 表示数字字符串长度的合法值为1到20 [0, 9] 数字应在0-9之间 ([ ]中可选字符集) [a-zA-Z] 表示要求为字母 ^ 打头字符要匹配紧跟^后面规则。 例如:^[0,9] 表明打头字符应0-9...
  • 在开发微信小游戏时候遇到提示“http://192.168.31.45:8090 不在以下 request 合法域名列表中”,其中192.168.31.45我电脑的IP地址。 思考:开发时微信不可能直接让你在外网服务器上调试,因此小程序绝对有设置IP...
  • java ip首部效验和

    2020-12-07 20:31:32
    (2)程序能够自动检查IP地址的合法性,且主机可用; (3)能够自动计算首部校验和值,并显示计算结果; (4)必须验证程序正确性:基于Wireshark工具所抓取真实IP包首部数据,能够成功检验首 部校验和字段...
  • 编程理解——判断IP

    2017-09-26 14:59:14
    1、要求判断一个字符串是不是合法的IP地址。 这个字符串的长度应该大于等于7,小于等于15。字符串必须要能分成四部分,而且每部分都数字字符,分隔符号点号。以下是自己的代码: #include #include using ...
  • 在浏览器上输入一个网址之后,就可以访问...DNS解析的过程就是一个寻找客户端访问的资源所在机器的过程,本质对用户输入的网址是否合法,以及将合法的网址“翻译”成IP地址。 DNS解析的过程其实一个递归查询的过...
  • 根据Netcraft在1999年10月报告,有931122个域和321128个IP地址利用PHP技术。 1.2 PHP先进之处 应用PHP有许多好处。当然已知不利之处在于PHP由于开放源码项目,没有什么商业支持,并且由此而带来执行速度...
  • IP地址盗用是指盗用者使用未经授权IP...由于IP地址是一个协议逻辑地址,是一个需要用户设置并随时修改值,因此无法限制用户修改本机IP地址。二是同时修改IP-MAC地址方法。针对单纯修改IP地址问题,很多...
  • 公有IP地址:也叫全局地址,合法的IP地址,它由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,全球统一的可寻址的地址。 私有IP地址:也叫内部地址,属于非注册...
  • 最近在做一个Android实时视频流传输项目,其中需要设计到NAT穿越技术。自己在网络方面知识...网络地址转换(NAT,Network AddressTranslation)属接入广域网(WAN)技术,一种将私有(保留)地址转化为合法IP地址的
  • ②底层——所有节点配置合法的IP地址 ③路由——静态、动态 最终要达到全网可达 ④策略——规则、优化、安全 ⑤测试 ⑥排错 3、维护 4、升级—割接 所以,上述实验,首先进行地址的规划 首先,进行子网划分 R1-R3...
  • 首先向大家介绍下NAT的分类,NAT一般可以分为以下几类:第一类:复用转换Mp4中国路由网PAT大家接触最多的NAT应用了,在动态转换中,每个合法的IP地址只能在转换表中使用一次,在内部网络主机访问外部需求增多的...

空空如也

空空如也

1 2 3 4
收藏数 69
精华内容 27
关键字:

以下ip地址是合法的是