精华内容
下载资源
问答
  • 2)判断subnet和ip_addr的合法性(注意考虑全面,比如以下IP均为不合法 123..2.1 123.23$.2.1 123.12345.2.1 123.23.45.2.1 3)判断掩码的合法性 4) 在IP地址合法的前提下,判断ip_addr是否属于子网subnet 5)...
  • 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)输出...
  • 判断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地址

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

     

    IPv4地址

    最初设计互联网络时,为了便于寻址和层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上的工作站,服务器和路由器等)有一个主机ID与其对应。Internet委员会定义了5种IP地址类型以适应不同容量的网络,即A类~E类。

    类别IP地址范围最大网络数最大主机数私有IP地址范围
    A0.0.0.0~127.255.255.255126(2^7 - 2)(A类地址的前缀为"0",网络ID标识码的位数为8位,网络号不能全为0且127.0.0.0网络保留用于回路测试,所以最大网络数为2^7-2)16777214(2^24 - 2 )10.0.0.0~10.255.255.255
    B128.0.0.0~191.255.255.25516384(2^14) (B类地址的前缀为"10",网络ID标识码的位数为16位,因此最大网络数为(2^14))65534(2^16 - 2)172.16.0.0~172.31.255.255
    C192.0.0.0~223.255.255.2552097152(2^21)(C类地址的前缀为"110",网络ID标志码的位数为24位,因此最大网络数为(2^21))254(2^8 - 2)192.168.0.0~192.168.255.255
    D224.0.0.0~239.255.255.255D类地址的前缀为"1110"  
    E240.0.0.0~255.255.255.255E类地址的前缀为"1111"  

    IPv4地址由4组数字组成,每组数字之间以.分隔,每组数字的取值范围是0~255.

    IPv4必须满足以下四条规则:

    1. 任何一个1位或者两位数字,即0~99;
    2. 任何一个以1开头的3位数字,即100~199;
    3. 任何一个以2开头,第二位数字在0~4之间的数字即200~249;
    4. 任何一个以25开头,第三位数字在0~5之间的三位数字,即250~255;

    首先满足第一条规则的正则是:

    ((\d{1,2})

    满足第二条规则的正则是:

    (1\d{1,2})

    满足第三条规则的正则是:

    (2[0-4]\d)

    满足第四条规则的正则是:

    (25[0-5])

    将其组合起来就能得到一个能匹配0~255的正则表达式了:

    ((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))

    IPv4地址由4个这样的数字组成,中间用"."隔开,所以可以匹配IPv4的正则表达式为:

    (((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))

    使用边界匹配,不然256.1.1.1也会匹配成功,会匹配成56.1.1.1,那么最终正确的匹配IPv4的正则表达式为:

    (?=(\b|\D))(((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{1,2})|(2[0-4]\d)|(25[0-5]))(?=(\b|\D))

     IPv6地址

    IPv6的128位地址通常写成8组,每4组为4个十六进制数。比如:AD80:0000:0000:0000:ABAA:0000:00C2:0002 是一个合法的IPv6地址。这个地址比较长,看起来不方便也不易于书写。零压缩法可以用来缩减其长度。如果几个连续段位的值都是0,那么这些0就可以简单的一::来表示,上述地址就可以写成AD80::ABAA:0000:00C2:0002.这里需要注意的是只能简化连续的段位的0,其前后的0都要保留,比如AD80的最后的这个0,不能被简化。当然也可以在ABAA后面使用::,这样的话前面的12个0就不能压缩了。这个限制的目的是为了能准确的还原被压缩的0,不然就无法确定每个::代表多少个0.

    支持IPv6基本格式的正则表达式:

    ^([\\da-fA-F]{1,4}:){7}([\\da-fA-F]{1,4})$
    展开全文
  • 2)判断subnet和ip_addr的合法性(注意考虑全面,比如以下IP均为不合法 123..2.1 123.23$.2.1 123.12345.2.1 123.23.45.2.1 3)判断掩码的合法性 4) 在IP地址合法的前提下,判断ip_addr是否属于子网subnet 5)...
  • 2)判断subnet和ip_addr的合法性(注意考虑全面,比如以下IP均为不合法 123..2.1 123.23$.2.1 123.12345.2.1 123.23.45.2.1 3)判断掩码的合法性 4) 在IP地址合法的前提下,判断ip_addr是否属于子网...
  • 编写程序,判断一个IP地址是否合法,并判断该地址是否属于一个给定的子网。 要求: 1)以命令行格式运行:ip_test subnet/mask ip_addr ...2)判断subnet和ip_addr的合法性(注意考虑全面,比如以下IP均为不合法
  • 【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; //创建...

    题目:

    写一个程序输出以下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
     

    展开全文
  • 检测IP参考地址_正则表达式 检测IP_正则表达式办法 1,检测IP算法,接口说明也如下图。 /* *brief *param: the ip address *return value: if susscess,0 is returned,or 1 is returned on error. */ int ...

    转载地址1  转载地址2  转载地址3 

    检测IP参考地址_正则表达式

    检测IP_正则表达式办法

    1,检测IP算法,接口说明也如下图。

    /*
    *brief 
    *param: the ip address
    *return value: if susscess,0 is returned,or 1 is returned on error.
    */
    int checkValidIP(const char *ipaddr)
    {
        char str[31], temp[31];
        int a, b, c, d;
    
        if (sscanf(ipaddr, "%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)
        {
            sprintf(temp, "%d.%d.%d.%d", a, b, c, d); //把格式化的数据写入字符串temp
            if (strcmp(temp, ipaddr) == 0)
            {
                return 0; //success
            }
            else
            {
                return 1;
            }
        }
        else
        {
            return 1;
        }
    
        return 0;
    }

    2,检测Mac算法,接口说明也如下图。

    MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC地址。MAC地址是网卡决定的,是固定的。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。为确保MAC地址的唯一性,以太网卡制造商将MAC地址固化到网卡中。地址的前半部分(24位)标识网卡的制造商,由IEEE分配,称为OUI(组织唯一标识符);地址的后半部分由网卡制造商为其网卡分配一个唯一的编号。MAC地址为电脑网卡的物理地址,每个网卡拥有全球唯一的MAC,以示区别。格式通常为6个字节的二进制代码(以6组16进制数表示,共占6个字节),格式为XX-XX-XX-XX-XX-XX 或者 XX:XX:XX:XX:XX:XX 比如: ED-DD-4D-45-5A-9F

    在一些使用MAC地址的场合中,需要对MAC地址进行合法性检测,以下提示C和JAVA两种检测方法,原理基本一致,都是使用正则表达式进行匹配:

    匹配模式:"^([A-Fa-f0-9]{2}[-,:]){5}[A-Fa-f0-9]{2}$"

    ^ 代表开头

    [A-Fa-f0-9]{2}  表示由两个16进进字符制组成 

    [-,:] 分隔符可能 为 " : "或 " - "

    {5} 前面由5个类似格式的字段组成,即 5个 XX- 或 XX:

    [A-Fa-f0-9]{2} 表示由两个16进进字符制组成结尾

    /*
    *brief 
    *param: pattern,正则表达式字符串;value,the mac address.
    *return value: if susscess,0 is returned,or 1 is returned on error.
    */
    int ereg(char *pattern, char *value)
    {
        int r, cflags = 0;
        regmatch_t pm[10];
        const size_t nmatch = 10;
        regex_t reg;
    
        r = regcomp(&reg, pattern, cflags);
        if (r == 0)
        {
            r = regexec(&reg, value, nmatch, pm, cflags);
        }
        regfree(&reg);
    
        return r;
    }
    /*
    *brief check whether the mac address is format-right
    *param: the mac address
    *return value: if susscess,0 is returned,or 1 is returned on error.
    */
    int isValidMac(char *macaddr)
    {
        int r;
        char reg[1024] = {"^[a-f0-9A-F]\\([a-f0-9A-F]\\:[a-f0-9A-F]\\)\\{5\\}[a-f0-9A-F]$"};
        r = ereg(reg, macaddr);
        return r;
    }
    

     

    #include <stdio.h>
    #include <sys/types.h>
    #include <regex.h>
     
     
    int is_valid_mac_addr(char* mac) { 
       
    	int status;
    	const char * pattern = "^([A-Fa-f0-9]{2}[-,:]){5}[A-Fa-f0-9]{2}$";
    	const int cflags = REG_EXTENDED | REG_NEWLINE;	
    	
    	char ebuf[128];
    	regmatch_t pmatch[1];
    	int nmatch = 10;
    	regex_t reg;
     
     
    	status = regcomp(&reg, pattern, cflags);//编译正则模式
    	if(status != 0) {
    		regerror(status, &reg, ebuf, sizeof(ebuf));
    		fprintf(stderr, "regcomp fail: %s , pattern '%s' \n",ebuf, pattern);
    		goto failed;
    	}
     
    	status = regexec(&reg, mac, nmatch, pmatch,0);//执行正则表达式和缓存的比较,
    	if(status != 0) {
    		regerror(status, &reg, ebuf, sizeof(ebuf));
    		fprintf(stderr, "regexec fail: %s , mac:\"%s\" \n", ebuf, mac);
    		goto failed;
    	}
     
    	printf("[%s] match success.\n", __FUNCTION__);
    	regfree(&reg);
    	return 0;
     
    failed:
    	regfree(&reg);
    	return -1;
    }
    

    3,相关库函数—— regcomp regexec讲解 参考链接

    https://blog.csdn.net/tanghaiyu777/article/details/65444332

    https://www.cnblogs.com/274914765qq/p/4574367.html

    https://www.cnblogs.com/lifan3a/articles/7536749.html

    https://www.cnblogs.com/catgatp/p/8052556.html

    4,正则表达式介绍:

    http://www.runoob.com/regexp/regexp-syntax.html

    展开全文
  • 3、 编写程序,判断一个IP地址是否合法,并判断该地址是否属于一个给定的子网。 要求:1)以命令行格式运行:ip_test subnet/mask ip_addr 其中ip_test为程序名;subnet为子网号;mask是一个数值,代表子网掩码连续...
  • IP地址合法性验证 程序

    万次阅读 2008-09-03 20:16:00
    这几天做网络的课程设计,选了一道程序题 IP地址合法性验证目的:掌握IP地址的分类,准确理解子网、掩码的概念,确切地明了IP地址合法格式。要求:1. 在判断一个IP地址合法性时要自行编写代码,不要使用任何...
  • C++判断IP地址字符串的合法

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

    万次阅读 2018-03-23 22:07:57
    互联网上的每个接口必须有一个唯一的Internet地址,称为IP地址IP地址长32bit。这些32位的地址通常写成四个十进制的数,其中每个数对应一个字节。这种表示方法也称“点分十进制”。五类IP不同的网络地址格式为如下...
  • Android 判断IP地址及端口是否正确

    万次阅读 2021-03-17 18:18:53
    在进行网络编程时,端口或者IP正确会导致应用挂掉,通过以下方法可以对端口或者IP进行判断是否合法。 二、解决思路 1.端口判断 端口的有效范围在 0 ~ 65535之间,写一个判断方法即可。 2. IP判断 这儿的IP指IPv4...
  • vmware能获取到IP地址解决

    万次阅读 2017-04-20 15:32:40
    一、Bridge模式时获取IP地址 原因:有多块网卡 解决办法: 1、禁用多余网卡:以前安装好的一些虚拟机,今天打开后发现都获取ip地址了,使用的是桥接模式。通过抓包发现,原来虚拟机的DHCP请求均发向了...
  • IP地址详解

    千次阅读 2013-10-27 13:29:59
    一、IP地址概念    IP地址就是给每个连在Internet网的主机分配一个在全世界范围内唯一的标示符。IP地址(英语:Internet Protocol Address)是一种在Internet上的给主机编址的方式,也称为网际协议地址。常见的...
  • 公用IP地址及私用IP地址

    千次阅读 2013-12-26 15:13:22
    IP 位址可分為兩大類,一類是公用 IP 位址 (Public IP) ,另一類是私用 IP 位址 (Private IP) ,所謂公用 IP 位址,是於 互聯網 上 IP 位址,也就是說,擁有這個 IP 的電腦或網路設備在 互聯網 就有合法的「地址」,...
  • 开发过程中,获取本地开发后台地址,提示: ...微信开发者工具(右上角)-- 详情 -- 本地设置 -- 勾选“效验合法域名、web-view(业务域名)、TLS版本以及HTTPS证书” 项 选中后,重新访问接口,即可: ...
  • 判断字符串是否为合法ip

    千次阅读 2015-05-22 11:44:14
    周三去B商搜面试,连着面了三面,对体力也是一个小...经过思考之后,先确定方向,是一道字符串处理的题,合法ip的话主要有以下几点: 1.合法IP只有'.'和'1-9'其他的字符都干掉 2.IP串为四个数字3个'.'符合的干掉
  • 如何计算IP地址

    千次阅读 2015-07-02 09:40:22
    一、 IP地址概念 IP地址是一个32位的二进制数,它由网络ID和主机ID两部份组成,用来在网络中唯一的标识的一台...补充(IPv6):前面所讲的32位IP地址称之为IPv4,随着信息技术的发展,IPv4可用IP地址数目已经
  • IP地址分类/IP地址10开头和172开头和192开头的区别/判断是否同一网段(A、B、C三类地址) IP地址分类/IP地址10开头和172开头和192开头的区别/判断是否同一网段 简单来说在公司或企业内部看到的就基本都是...
  • Javascript对IP 地址的操作(比较大小,计算网段)
  • BUPT OJ101 IP地址

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

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

    千次阅读 2015-08-01 08:55:13
    五,IP地址规划方法  (1)IP地址规划的基本步骤  网络地址规划需要按以下6步进行:  a)判断用户对网络与主机数的需求;  b)计算满足用户需求的基本网络地址结构;  c)计算地址掩码;  d)计算网络地址; ...
  • IP地址与CIDR

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

    千次阅读 2014-08-09 15:43:56
    IP地址API by 尘缘 on 十一月 29th, 2010 // Filed Under → php 当我们开发了一些应用以后,可能需要限制用户程序进行分发,典型的例子就是绑定域名的App。如果用户将域名使用本地HOST解析,很有可能绕过...
  • IP地址大全之IPV4版

    千次阅读 2009-03-07 03:14:00
    IP 地 址我们平时说的IP地址,也就是IPv4,一般分合法IP地址和私有IP地址两类。其中,合法IP地址主要应用于Internet,用来实现Internet上的主机访问,而私有IP地址应用于局域网,用来实现局域网中计算机之间的互相...

空空如也

空空如也

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

以下不合法的ip地址是