精华内容
下载资源
问答
  • 要求:1)以命令行格式运行:ip_test subnet/mask ip_addr ...4) 在IP地址合法的前提下,判断ip_addr是否属于子网subnet 5)输出命令行中的IP是否合法,掩码是否合法(可适当给出不合法原因)以及ip_addr
  • IP地址合法性及子网判断

    热门讨论 2009-06-25 14:37:45
    在判断IP地址合法性时要自行编写代码,不要使用任何inet函数。判断时要考虑全面,比如以下IP地址均不合法:  123..2.1  123.23$.2.1  123.2345.2.1  123.23.45.2.1 C)判断掩码的合法性。 D)在IP...
  • 判断IP地址合法

    2014-12-28 17:01:19
    判断IP地址是否合法

    用正则表达式判断IP地址的合法性

    
    
    
    
        <script>
        function check_ipaddr(input_id)
    	{
    		/*如果调用该函数传参数时,参数加上了引号,则直接用getElementById(input_id)即可
    		如果传参数时,直接传的id值,则需要用以下方式获取该id对应的值*/
    		var ipaddr = document.getElementById(input_id.id).value;
    		if(ipaddr == "")
    		{
    			return true;
    		}
    		alert(ipaddr);
    		var reg = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
    		if(reg.exec(ipaddr))
    		{
    			if(RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4  < 256)
    			{
    				return true;
    			}
    			else
    			{
    				alert("IP地址格式不对");
    				return false;
    			}
    		}
    		else
    		{
    			alert("IP地址格式不对");
    		}
    	}
        </script>
        
    
    
        
        
    
    
    


    其中: 

    ^: 表示以....开头

    \d: 表示0-9之间的数字

    \d+: 表示多个数字

    $:表示以...结尾





    展开全文
  • IP地址合法性及子网判断计算机网络系统设计书.docxIP地址的合法性及子网判断计算机网络系统设计书概述1.1课程设计目的本设计要求编写程序,判断一个IP地址是否合法,并判断该地址是否是属于一个给定的子网。...

    IP地址的合法性及子网判断计算机网络系统设计书.docx

    IP地址的合法性及子网判断计算机网络系统设计书概述1.1课程设计目的本设计要求编写程序,判断一个IP地址是否合法,并判断该地址是否是属于一个给定的子网。从而考察读者是否对IP地址概念及子网划分有非常清楚的认识。1.2 课程设计的要求在掌握IP 地址的表示方法及指望划分方法的基础上,按如下要求完成程序。命令行格式:ip_test subnet/mask ip_addr其中,ip_test为程序名;subnet为子网好;mask是一个数值,代表子网掩码连续1 的个数;ip_addr是要测试的IP地址。例如,要测试的IP地址为0,子网号为,子网掩码为,则没命令行为ip_test/24 0.(因为是连续的24个1,所以用24表示。)判断subnet和ip_addr的合法性。在判断IP地址的合法性是要自行编写代码,不要用任何的inet函数。判断是要考虑全面,比如以下IP 的地址的合法性:123..2.1123.23¥.2.1.1判断掩码的合法性。在IP地址合法的前提下,判断ip_addr是否属于子网subnet。输入命令行中的ip是否合法,掩码是否合法(可适当给出不合法原因)以及ip_addr是否属于子网subnet。第二章具体设计2.1设计思路根据以上的要求,并结合当前的所学的一些知识和技术,我们最终通过另一种方式来实现相同的功能,但代码更加优化,高效,方便用户的窗体程序。对于以上的要求,设计思路如下:程序大致流程分别判断子网号,掩码和ip地址的基本格式的合法性。如果三者的基本格式都合法,才调用判定“IP地址是否为子网成员”的函数。该函数同时判别子网号和掩码是否匹配,子网号为全0或全1,主机号为全0、全1。核心代码及说明判断ip地址是否合法,才调用判定“IP地址是否为子网成员”的函数。该函数同时判断子网号与掩码是否匹配,子网号为全0或全1,主机号为全0、全1.核心代码及说明判断IP地址是否合法。一般来说,我们先检查最明显的错误。例如,可以先判断IP中“.”的个数是否正确;接着,以“.”为标志将IP字符串按节分开;然后,看该IP是否为4段,再判断各节是否是0~255间的整数。关于网络号、主机号全0全1等问题要在后面结合子网掩码一起判断。这里德关键是怎么样将IP字符串以“.”为标志按节分开,这要用到函数strtok(char * strToken,const char * strDelimit)。第一个参数是给定的串,第二个参数是分隔符集合,该函数的功能就是以strDelimit中包含的任意字符为分隔符,在strToken中寻找下一个token。每一次调用strtok后,都会在strToken中插入一个NULL字符,所以,如果要读取下一个stoken,接下来调用strtok时第一个参数用NULL。这样,IP串的每一段都放到dot数组里了,下面判断是否有非法字符,每一段的值是否在0~255之间,就很容易了。判断IP地址是否为子网成员,判断子网号与掩码是否匹配,以及子网号、主机号全0、全1的问题2.2流程图如下:当用户启动程序后(如图2.1),在输入框中输入IP、子网、子网掩码,然后点击测试,验证其合法性。在此过程中调用子程序isLegal(如图2.2)在子程序中判断输入的IP地址是否合法(其中包括:1.判断输入的IP长度是否合法;2.判断输入的IP是否含有非法字符;3.判断输入的IP格式是否正确;4.判断输入的IP是否已转化为Ipaddress的实例)。跳回到主程序中继续执行,如果IP、子网、子网掩码都合法,调用子程序subChecked(如图2.3),在子程序中完成判断子网号和子网掩码是否匹配,如果匹配则进一步判读子网号是否为全0或全1,否则输出子网号和子网掩码不匹配提示。接下来,如果子网号不为全0或全1则将IP和掩码做“与”运算,结果和子网号比较,否则输出子网号为全0或全1提示。再接下来,判断比较结果(IP和掩码做“与”运算的结果和子网号的比较结果)是否相等,如果相等则判断主机号是否为全0或全1,如果不相等则输出“IP不属于该子网”。最后,如果主机号为全0或全1则输出主机号为全0或全1提示,如果主机号不为全0或全1则输出“IP属于该子网”。子程序执行完后返回主程序中继续执行,然后完成ip地址是否属于给定子网的判定图2.2-子程序islegal流程图图2.3-子流程图subChecked2.3核心源代码分析与说明using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Wind

    展开全文
  • 一、题目要求 请创作一个小程序,实现如下功能: 1.判断输入的字符串是否是合法IP地址 ...5.如果既不是合法IP地址也不是合法的地址范围表达式,输出“不合法” 二、前期思路       &n

    一、题目要求

    请创作一个小程序,实现如下功能:
    1.判断输入的字符串是否是合法的IP地址
    2.如果是合法的IP地址表达,请判断是v4还是v6地址,并将其展开为对应的2进制串输出
    3.如果不是合法的IP地址表达,判断输入的字符串是否是合法的地址范围表达式,如"192.168.0.0/24"、“::1/128”
    4.如果是合法的地址范围表达式,输出其最小和最大地址,以及地址总数
    5.如果既不是合法的IP地址也不是合法的地址范围表达式,输出“不合法”

    二、前期思路

    在这里插入图片描述

            根据题目我先做了上面的一个伪代码表示过程。接下来我要做的是思考如何区分是否是一个地址还是一个地址范围。仔细观察我们可以看到一个地址和一个范围最大的区别就是后面的子网掩码位数和斜杠,所以我这里想把斜杠作为一个标志符来区分地址和地址范围。
            关于地址的合法判断,如果是ipv4,则可以按照’.’将地址分为4个部分,检测每个部分是否大于255,不然可以视为合法地址。如果是ipv6还要考虑缩写的问题,这里思路应该是先检测地址的位数是否合理(是否是完全展开的形式),如果不是的话则要扩充到完全展开的形式,然后再进行判断。合法地址的二进制形式可以先将地址按照’.’或者’:’进行分割,然后再把每个部分从string转成int再进行转换操作。
            关于地址范围的判断,我的想法是先看看有没有斜杠,如果有的话就把地址范围分成两个部分:前面的网段和后面的子网掩码位数。题目的要求是输出最大地址和最小地址,并且输出总数,总数这里可以根据子网掩码去判断。2的32-子网掩码或者128-子网掩码次方再减去2,因为第一个最后一位是0那个地址和最后那个广播地址是不可用的,这里两个地址应当判断为不合法的地址。最小地址应该是网段那串数字加1,最大的地址应当是广播地址-1,这样子就可以得出题目所需要的东西了。

    三、代码

    import IPy
    
    def tobin(ip):
        print('二进制格式转换:', IPy.IP(ip).strBin())
    
    def jugiptype(ip):
        iptype = 0
        try:
            iptype = IPy.IP(ip).version()
        except:
            iptype = 0
        else:
            return iptype
    
    def checkipv4oripv6(ip):
        if '/' not in ip:
            iptype = jugiptype(ip)
            if iptype:
                print ('iptype:',iptype)
                tobin(ip)
            else:
                print('ileagal address')
    
    def checkipv4oripv6range(ip):
        if '/' in ip:
            try:
                ip1 = IPy.IP(ip)
            except:
                print('ileagal address')
                return
            depart = ip.split('/',1)
            jug1 = depart[1].isdigit()
            if jug1:
                Subnetmask = int(depart[1])
                iptype = jugiptype(depart[0])
                if iptype == 4 and Subnetmask <= 32:
                    try:
                        print('totle address:', IPy.IP(ip).len()-2)
                    except:
                        print ('ileagal address')
                    x = IPy.IP(ip).strNormal(3).split('-', 1)
                    y0,y1 = list(x[0]),list(x[1])
                    y0[-1] = '1'
                    minaddr = ''.join(y0)
                    if y1[-1] != '0':
                        y1[-1] = str(int(y1[-1])-1)
                    maxaddr = ''.join(y1)
                    print('minaddr:',minaddr)
                    print('maxaddr:',maxaddr)
                elif iptype == 6 and Subnetmask <= 128:
                    try:
                        print ('totle address:',IPy.IP(ip).len()-2)
                    except:
                        print ('ileagal address')
                    x = IPy.IP(ip).strNormal(3).split('-',1)
                    y0, y1 = list(x[0]), list(x[1])
                    y0[-1] = '1'
                    minaddr = ''.join(y0)
                    if y1[-1] != '0':
                        y1[-1] = str(int(y1[-1]) - 1)
                    maxaddr = ''.join(y1)
                    print('minaddr:', minaddr)
                    print('maxaddr:', maxaddr)
                else:
                    print ('ileagal address')
            else:
                print ('ileagal address')
    
    if __name__ == '__main__':
        ip = input()
        checkipv4oripv6(ip)
        checkipv4oripv6range(ip)
    

    这里我使用的是python的IPy模块,这个模块里面的一些方法很适合这个题目的算法。参考以下地址

    https://blog.csdn.net/xixihahalelehehe/article/details/105203978

            这个代码最主要的函数就是checkipv4oripv6函数和checkipv4oripv6range函数,用于区分地址范围还是地址。我这里的处理是两个函数一开始就让他判断是否有’/’,这样下面调用这两个函数的时候就只会挑一个进行了。
    checkipv4oripv6(ip)中(ip):IPy.IP(ip).version()这个方法是用于判断是ipv4地址还是ipv6地址的,但是当出错的时候他这个函数的设定不是返回-1,而是会出错,所以我这里将他用一个try函数去执行,并且设定一个flag(iptype)去判断这个函数是否执行成功,如果成功这个值会是4或者6,否则是0。当他不合法的时候直接打印“ileagal”。如果是合法的则调用IPy.IP(ip).strBin()
    函数将二进制打印出来。这部分就这样子完成了。
            checkipv4oripv6range(ip)中依旧是先判断’/’,一开始先执行一下ip1 = IPy.IP(ip)
    因为如果这个执行失败的话就说明这个东西的不合法的(网段号最后一位不是0这种情况会报错)。所以可以根据这个来判断是否一开始这个网段号就写错了。然后就是使用IPy.IP(ip).len()去判断长度。不过这个函数的思路是有点问题的,因为如果直接打印ip1 = IPy.IP(ip)这个值的话(比如192.168.0.0/24)会从192.168.0.0这个开始打印,也就是这个函数认为192.168.0.0也是合法地址。包括最后那个广播地址也会打印出来。所以IPy.IP(ip).len()的结果是256,可以看到最后代码里做了-2处理。IPy.IP(ip).strNormal(3)
            函数本来是直接确定了最大最小地址的。但是这个是从0开始255结束的。但我们要去把头加1,最后那个-1,所以我调用完这个函数之后对数据进行了改动得到正确结果

    四、测试样例

    在这里插入图片描述
    最后那个是256不合法
    在这里插入图片描述
    lh是不合法的
    在这里插入图片描述
    合法地址
    在这里插入图片描述
    合法地址
    在这里插入图片描述
    合法地址
    在这里插入图片描述
    子网掩码不合法
    在这里插入图片描述
    前面不是网段,我这里将他判定不合法
    在这里插入图片描述
    双冒号不合法的写法
    在这里插入图片描述
    这个更不合法了
    在这里插入图片描述
    合法地址

    五、总结

         其实这一次算是真正的第一次用python去实现功能。其中有很多东西都是一边百度一边写的代码。刚刚开始我还头疼,因为如果按照以前c++的思维的话全部功能我都要自己去实现一遍,这个工程量我觉得还是有点大的。结果IPy模块的函数让我欣喜。这里面的函数虽然没有全部期望的功能,但是也算是把大量工作做了七八成了,所以整体做起来还算快。也深入了解了python的代码风格。
         期间还学到了一些不一样,例如:Python中string是不可变的,要把string变成list才能更改。Python的函数很多,写代码很方便。缩进很严谨。有其他语言编程基础很容易上手这门语言。ipv4和ipv6之间的区别,虽然还有些地方没有搞得太清楚,但总体上有了一点了解。
         其实这个IPy里面的函数跟我们预期有很多不一样的,比如数量那个函数没有剔除首尾两个地址,而且那个判定ipv4的函数也是有bug的,输入1234这样的数据的时候他会自动填充前面的0如下图:
    在这里插入图片描述
    IETF规范里面的特殊一点的样例也没有太多考虑,不过要加也是可以增加上去的,就是加大点工作量而已

    六、参考文献

    1.https://www.zhihu.com/question/361759837/answer/941637125

    2.https://blog.csdn.net/gatieme/article/details/50989257utm_medium=distribute.pc_relevant_bbs_down.none-task–2allfirst_rank_v2rank_v29-2.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task–2allfirst_rank_v2rank_v29-2.nonecase

    3.https://www.runoob.com/python/python-exceptions.html

    4.https://blog.csdn.net/xixihahalelehehe/article/details/105203978

    5.http://www.360doc.com/content/19/0809/12/29215996_853855203.shtml

    6.计算机网络自顶向下第七版

    7.https://baike.baidu.com/item/IPv4/422599?fr=aladdin

    8.https://www.runoob.com/python3/python3-tutorial.html

    9.https://baike.baidu.com/item/%E7%BD%91%E7%BB%9C%E5%8F%B7/2634355?fr=aladdin

    展开全文
  • 要求:1)以命令行格式运行:ip_test subnet/mask ...4) 在IP地址合法的前提下,判断ip_addr是否属于子网subnet 5)输出命令行中的IP是否合法,掩码是否合法(可适当给出不合法原因)以及ip_addr是否属于子网subnet。
  • IP地址合法性验证 程序

    万次阅读 2008-09-03 20:16:00
    这几天做网络的课程设计,选了一道程序题 IP地址的合法性验证目的:掌握IP... 在判断一个IP地址合法性时要自行编写代码,不要使用任何inet函数。2. 程序要求为命令行程序,格式为:ip_test subnet/mask ip_addr 

               这几天做网络的课程设计,选了一道程序题

     IP地址的合法性验证

    目的:掌握IP地址的分类,准确理解子网、掩码的概念,确切地明了IP地址的合法格式。

    要求:

    1.        在判断一个IP地址合法性时要自行编写代码,不要使用任何inet函数。

    2.        程序要求为命令行程序,格式为:

    ip_test subnet/mask ip_addr

         其中,程序名称为ip_test,参数为IP地址/子网掩码,如:

    要测试的IP地址为202.113.16.10,子网号为202.113.16.0,子网掩码为255.255.255.0,则命令行为:

    ip_test 202.113.16.0/24  202.113.16.10

    (因为255.255.255.0是连续的241,所以这样表示)。

    3.        子网号和子网掩码的合法性也要检查。

    4.        运行结果提示需要提示:IP地址是否合法、子网掩码是否合法和IP地址是否为子网成员。

     

    提示

    在判断不合法IP时要考虑全面,比如以下情况均属于不合法

    123..2.1
    123.23$.2.1
    123.2345.2.1
    123.23.45.2.1

     

     

    大概的思路,先词法分析,看输入是否正确,再检查输入的ip字段是否正确,遇到的问题

    有怎样去识别子网号,如果是人去做,就将ip段转换为直观的二进制字段去查看,这里

    采用了类似的方法,程序写的很乱,也没有多少积极性去写

     

    #include <iostream.h>
    #include <string.h>
    #include <stdlib.h>

    int Check(char* iplang, int* array)
    {
     char* p = iplang;
     char temp[16] = "";
     int k = 0;
     int count = 0;
     for (int i = 0; i < 3; i++)
     {
      int j = 0;
      temp[0] = '/0';
      while (*p >= '0' && *p <= '9')
      {
       temp[j++] = *p;
       p++;
       count++;
      }
      temp[j] = '/0';
      if (*p != '.')
      {
       return 0;
      }
      else
      {
       p++;
       count++;
      }

      array[k++] = atoi(temp);
     }
     return count;
    }

    int First(char* iplang, int* array)
    {
     int t = Check(iplang, array);
     if (t == 0)
     {
      return 0;
     }
     char temp[16] = "";
     char* p = iplang + t;
     int j = 0;
     while (*p >= '0' && *p <= '9')
     {
      temp[j++] = *p;
      p++;
      t++;
     }
     temp[j] = '/0';
     array[3] = atoi(temp);
     if (*p != '/')
     {
      return 0;
     }
     p++;
     j = 0;
     while (*p >= '0' && *p <= '9')
     {
      temp[j++] = *p;
      p++;
     }
     temp[j] = '/0';
     if (*p != '/0')
     {
      return 0;
     }
     array[4] = atoi(temp);
     return 1;
    }

    int Second(char* iplang, int* array)
    {
     int t = Check(iplang, array);
     char temp[16] = "";
     char* p = iplang + t;
     int j = 0;
     while (*p >= '0' && *p <= '9')
     {
      temp[j++] = *p++;
     }
     temp[j] = '/0';
     if (*p != '/0')
     {
      return 0;
     }

     array[3] = atoi(temp);
     return 1;
    }

    int ipCheck(int* array)
    {
     if (array[0] == 0)
     {
      return 0;
     }
     for (int i = 0; i < 4; i++)
     {
      if (array[i] > 255)
      {
       return 0;
      }
     }
     return 1;
    }

    int maskCheck(int* subnet, int* ip, int mask)
    {
     if (subnet[0] >0 && subnet[0] < 127 && mask < 8 )
     {
      return 0;
     }
     if (subnet[0] >127 && subnet[0] < 192 && mask < 16 )
     {
      return 0;
     }
     if (subnet[0] >191 && subnet[0] < 224 && mask < 24 )
     {
      return 0;
     }
     if (mask > 32)
     {
      return 0;
     }
     int t;
     int bit[9] = {0, 128, 192, 224, 240, 248, 252, 254, 255};
     for (int i = 0; i < 4; i++)
     {  
      if (mask < 0)
      {
       mask = 0;
      }
      
      if (mask > 8)
      {
       t = 8;
      }
      else
      {
       t = mask;
      }
      
      if (subnet[i] != (ip[i] & bit[t]))
      {
       return 0;
      }
      mask -= 8;
     }
     return 1;
    }

    int subnetCheck(int* net, int* ip)
    {
     char tnet[9], tip[9];
     for (int i = 0; i < 4; i++)
     {
      if (net[i] != ip[i])
      {
       for (int j = i + 1; j < 4; j++)
       {
        if (net[j] != 0)
        {
         return 0;
        }
       }
       break;
      }
     }
     if (net[i] == 0)
     {
      return 1;
     }
     if (net[i] > ip[i])
     {
      return 0;
     }
     itoa(net[i], tnet, 2);
     itoa(ip[i], tip, 2);
     if (strlen(tnet) != strlen(tip))
     {
      return 0;
     }
     char* p = tnet;
     int j = strlen(tnet);
     int sign = 0;
     int bit[8] = {1, 2, 4, 8, 16, 32, 64, 128};
     for (int k = 0; k < j; i++)
     {
      if (*p = '1')
      {
       sign = k;
      }
      p++;
     }
     if (net[i] + bit[j - sign - 1] <= ip[i])
     {
      return 0;
     }
     
     return 1;
    }

    int main(int argc, char** argv)
    {
     if (argc != 3)
     {
      cout << "参数输入有误!" << endl;
      return 1;
     }
     if (strlen(argv[1]) > 18 || strlen(argv[2]) > 15)
     {
      cout << "长度输入有误" << endl;
      return 1;
     }
     char chNet[19] = "";
     char chIp[16];
     
     strcpy(chNet, argv[1]);
     strcpy(chIp, argv[2]);

     int net[5], ip[4];
     int a = First(chNet, net);
     int b = Second(chIp, ip);
     int k = 1;
     if (a == 0 || b == 0)
     {
      cout << "输入有误/n";
      return 1;
     }
     if (ipCheck(ip) == 0 || ipCheck(net) == 0)
     {
      cout << "ip错误" << endl;
      return 1;
     }
     else
     {
      cout << "ip正确/n";
     }
     if (maskCheck(net, ip, net[4]) == 0)
     {
      cout << "掩码错误/n";
    //  return;
      k = 0;
     }
     if (subnetCheck(net, ip) == 0)
     {
      cout << "ip地址不是子网成员/n";
      return 1;
     }
     else
     {
      cout << "ip地址是子网成员/n";
     }
     if (k == 0)
     {
      return 1;
     }
     cout << "正确" << endl;
     return 0;
    }

     

     

     

    展开全文
  • 1)以命令行格式运行:ip_test subnet/mask ip_addr ...4) 在IP地址合法的前提下,判断ip_addr是否属于子网subnet 5)输出命令行中的IP是否合法,掩码是否合法(可适当给出不合法原因)以及ip_add
  • 编写程序,判断一个IP地址是否合法,并判断该地址是否属于一个给定的子网。 要求: 1)以命令行格式运行:ip_test subnet/mask ip_addr 其中ip_test为程序名;subnet为子网号;mask是一个数值,代表子网掩码连续1的...
  • 【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 &lt;Foundation/Foundation.h&gt; //创建...
  • 完整代码如下,代码还未进行优化,所以看起来会很繁琐,但是想稍稍记录以下哈哈 package lab_report_IP; import java.util.*; public class ip { public static void main(String[] args) { // TODO Auto-...
  • 3、 编写程序,判断一个IP地址是否合法,并判断该...4) 在IP地址合法的前提下,判断ip_addr是否属于子网subnet 5)输出命令行中的IP是否合法,掩码是否合法(可适当给出不合法原因)以及ip_addr是否属于子网subnet。
  • 笔试1--判断一个IP地址是否合法

    万次阅读 2018-03-23 22:07:57
    互联网上的每个接口必须有一个唯一的Internet地址,称为IP地址IP地址长32bit。这些32位的地址通常写成四个十进制的数,其中每个数对应一个字节。这种表示方法也称“点分十进制”。五类IP不同的网络地址格式为如下...
  • 检测IP参考地址_正则表达式 检测IP_正则表达式办法 1,检测IP算法,接口说明也如下图。 /* *brief *param: the ip address *return value: if susscess,0 is returned,or 1 is returned on error. */ int ...
  • 正则表达式验证合法IP地址

    千次阅读 2019-06-30 12:13:43
    最初设计互联网络时,为了便于寻址和层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上的工作站,服务器和路由器等)有...
  • C++判断IP地址字符串的合法

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

    万次阅读 2021-03-17 18:18:53
    一、前言 在进行网络编程时,端口或者...a) IP地址长度判断 b) 切割字符串,是否能够被分为四段 c) 每段是否为数字 d) 每个数字是否在0 ~ 255之间 三、参考代码 private boolean isNetPort(int port) { boolean flag
  • 101.IP地址

    2019-03-23 21:43:54
    题目描述 我们都学过计算机网络,了解IPV4地址的点分十进制表示...PS :方便起见,认为形似00.00.00.00的IP地址也是合法的。 输入格式 第一行是一个整数T,代表输入还剩下T行 以下的T行,每行都是一个字符串(不...
  • IP地址 时间限制 1000 ms 内存限制 65536 KB 题目描述 我们都学过计算机网络,了解IPV4地址的点分十进制表示法。...PS :方便起见,认为形似00.00.00.00的IP地址也是合法的。 输入格式 第...
  • IP地址详解

    千次阅读 2013-10-27 13:29:59
    一、IP地址概念    IP地址就是给每个连在Internet网的主机分配一个在全世界范围内唯一的标示符。IP地址(英语:Internet Protocol Address)是一种在Internet上的给主机编址的方式,也称为网际协议地址。常见的...
  • 我们使用java进行开发的时候,经常会使用到IP,但是传入的IP很有可能是不合法的,那么我们如何判断传入的IP是否是合法的呢? 思路如下: 1)传入的字符串是否为空 2)判断字符串的长度是不是在7-15位之间(x.x.x.x...
  • 公用IP地址及私用IP地址

    千次阅读 2013-12-26 15:13:22
    IP 位址可分為兩大類,一類是公用 IP 位址 (Public IP) ,另一類是私用 IP 位址 (Private IP) ,所謂公用 IP 位址,是於 互聯網 上 IP 位址,也就是說,擁有這個 IP 的電腦或網路設備在 互聯網 就有合法的「地址」,...
  • BUPT OJ101 IP地址

    千次阅读 2014-03-11 20:37:37
    题目描述 我们都学过计算机网络,了解IPV4地址的点分十进制表示法。...PS :方便起见,认为形似00.00.00.00的IP地址也是合法的。   输入格式 第一行是一个整数T,代表输入还剩下T行 以下的T行,每行
  • 如何计算IP地址

    千次阅读 2015-07-02 09:40:22
    一、 IP地址概念 IP地址是一个32位的二进制数,它由网络ID和主机ID两部份组成,用来在网络中唯一的标识的一台计算机。网络ID用来标识计算机所处的网段;主机ID用来标识计算机在网段中的位置。IP地址通常用4组3位...
  • Javascript对IP 地址的操作(比较大小,计算网段)
  • IP地址与CIDR

    千次阅读 2020-04-21 23:57:21
    CIDR采用各种长度的"网络前缀"来代替分类地址中的网络号和子网号,其格式为:IP地址 = {<网络前缀>,<主机号>}。为了区分网络前缀,通常采用"斜线记法"(CIDR记法),即IP地址/网络前缀所占比特数。例如...
  • 北邮Oj101-- IP地址

    2019-01-31 12:43:40
    时间限制 1000 ms 内存限制 65536 KB 题目描述 我们都学过计算机网络,了解IPV4地址的点分十进制表示法...PS :方便起见,认为形似00.00.00.00的IP地址也是合法的。 输入格式 第一行是一个整数T,代表输入还剩下...
  • IP地址的正则表达式

    千次阅读 2018-08-17 15:35:15
    这里讲的是IPv4的地址格式,总长度 32位=4段*8位,每段之间用.分割, 每段都是0-255之间的十进制数值。 将0-255用正则表达式表示,可以分成一下几块来分别考虑: 取值区间 特点 正则写法 可合并的写法 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,649
精华内容 23,059
关键字:

以下ip地址是合法的是