精华内容
下载资源
问答
  • 如何判断IP地址是否合法

    千次阅读 2017-09-22 09:53:15
    如何判断一个IP地址是否合法,以及如何判断一个IP地址...判断IP地址是否合法: bool isValidIP(char *ip) { if (ip == NULL) return false; char temp[4]; int count = 0; while (true) { int index = 0;
    如何判断一个IP地址是否合法,以及如何判断一个IP地址是否在给定的IP地址范围内,废话不多说,上代码
    


    判断IP地址是否合法:

    bool isValidIP(char *ip)
    {
    	if (ip == NULL)
    		return false;
    	char temp[4];
    	int count = 0;
    	while (true)
    	{
    		int index = 0;
    		while (*ip != '\0' && *ip != '.' && count < 4)
    		{
    			temp[index++] = *ip;
    			ip++;
    		}
    		if (index == 4)
    			return false;
    		temp[index] = '\0';
    		int num = atoi(temp);
    		if (!(num >= 0 && num <= 255))
    			return false;
    		count++;
    		if (*ip == '\0')
    		{
    			if (count == 4)
    				return true;
    			else
    				return false;
    		}
    		else
    			ip++;
    	}
    }




    判断一个IP地址是否在给定的IP地址范围内:

    bool IsIpInner(string strDesIp, string strBegin, string strEnd)
    {
    	char* tempDesIp = const_cast<char*>(strDesIp.c_str());
    	char* tempBegin = const_cast<char*>(strBegin.c_str());
    	char* tempEnd = const_cast<char*>(strEnd.c_str());
    	if (isValidIP(tempDesIp) && isValidIP(tempBegin) && isValidIP(tempEnd))
    	{
    		unsigned long lDesIp = GetIpInt(strDesIp);
    		unsigned long lBegin = GetIpInt(strBegin);;
    		unsigned long lEnd = GetIpInt(strEnd);;
    		return (((lDesIp >= lBegin) && (lDesIp <= lEnd)) || ((lDesIp <= lBegin) && (lDesIp >= lEnd)));
    	}
    	else
    		return false;
    }

    其中GetIpInt(string strIp)是将IP地址转化为可比较大小的整形数,如下:

    unsigned long GetIpInt(string strIp)
    {
    	char* tempIp = const_cast<char*>(strIp.c_str());
    	char *next_token = NULL;
    	char* ch1 = strtok_s(tempIp, ".", &next_token);
    	char* ch2 = strtok_s(NULL, ".", &next_token);
    	char* ch3 = strtok_s(NULL, ".", &next_token);
    	char* ch4 = strtok_s(NULL, ".", &next_token);
    	unsigned long a = stoi(ch1);
    	unsigned long b = stoi(ch2);
    	unsigned long c = stoi(ch3);
    	unsigned long d = stoi(ch4);
    	return a * 255 * 255 * 255 + b * 255 * 255 + c * 255 + d;
    }


    展开全文
  • 互联网上的每台计算机都有独一无二的编号,称为IP地址,每个合法的IP地址由“.”分开的4个数字组成,并且IP地址细分类型的话,...现在用户输入一个字符串(不含有空格)判断是否合法。import os,sysa=input()def ch...

    互联网上的每台计算机都有独一无二的编号,称为IP地址,每个合法的IP地址由“.”分开的4个数字组成,并且IP地址细分类型的话,可以分为“A” “B” “C” "D" "E"类,我们常常使用的是C类IP地址所以第一个数字组成开头不能含有“0”,因为那是A类IP地址专属的,好奇的朋友可以去查查哦。

    现在用户输入一个字符串(不含有空格)判断是否合法。

    import os,sys

    a=input()

    def check_ip(ip):

    import sys

    sc=ip.strip().split('.')

    if len(sc)!= 4:

    print( "check ip address failed!")

    sys.exit()

    for i in range(4):

    b=len(sc[i])

    c=sc[i]

    for j in range(b):

    if c[j]==" ":

    print ("check ip address failed!")

    sys.exit()

    j+=1

    try:

    sc[i]=int(sc[i])

    except:

    print ("check ip address failed!")

    sys.exit()

    if sc[i]<=255 & sc[i]>=0:

    pass

    else:

    print ("check ip address failed!")

    sys.exit()

    i+=1

    else:

    print ("check ip address success!")

    if len(sys.argv)!=2:

    print ("Example: %s 10.0.0.1 "%sys.argv[0] )

    sys.exit()

    else:

    check_ip(sys.argv[1])

    print(check_ip(a))

    以上代码我个人觉得是比较简单易懂的方法,当然用的时候要注意复制过后的每行空格格式。因为PYTHON的空格是抓的非常的严格的。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • 如何用C语言判断ip地址是否合法 用inet addr有问题

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

            对ip地址进行判断, 可以用很多方法, 比如正则表达式和直接解析法。 但是, 并不是所有的朋友都会正则表达式, 直接解析法则繁琐易错。 下面, 我们换一个思路, 看看如何判断ip地址的合法性(其实这个程序有问题):

    #include <stdio.h>#include <winsock2.h>#pragma comment(lib, "ws2_32.lib")int isValidIP(char *ip)if(INADDR_NONE == inet_addr(ip)) {  return -1; } return 1;}int main()char ips[][100] =  {  "123.456.789.1",  "116.1.1.29",  "119.x.1.11",  "172.18.18.29",  "-1.1.1.1",  "0.0.0.0",  "255.255.255.255",  "10.85.168.40",  "256.1.1.1",  "127.0.0.1",   "1.1. 1.1",  "190.190.190.190",  "1.1.1",           // 这个被误判为合法的了  "119.1.1.1",  ""                 // 这个被误判为合法的了 };  int size = sizeof(ips) / sizeof(ips[0]); int i = 0for(i = 0; i < size; i++) {  if(-1 == isValidIP(ips[i]))  {   printf("no\n");  }  else  {   printf("yes\n");  } } return 0;}

           结果:

    123.456.789.1--->no
    116.1.1.29--->yes
    119.x.1.11--->no
    172.18.18.29--->yes
    -1.1.1.1--->no
    0.0.0.0--->yes
    255.255.255.255--->no
    10.85.168.40--->yes
    256.1.1.1--->no
    127.0.0.1--->yes
    1.1. 1.1--->no
    190.190.190.190--->yes
    1.1.1--->yes
    119.1.1.1--->yes
    --->yes

         可以看到, 上述程序是有问题的,那怎么办呢? 我们先判断一下字符串中的点的数目吗? 即便如此, 我们怎么知道不存在其他问题呢? 我以前以为inet_addr是判断ip是否合法的好方法, 没想到存在问题。 



         所以, 还是老实一点, 用sscanf吧。 如果大家如果大家有好的方法, 欢迎分享。     



               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • 互联网上的每台计算机都有独一无二的编号,称为IP地址,每个合法的IP地址由“.”分开的4个数字组成,并且IP地址细分类型的话,...现在用户输入一个字符串(不含有空格)判断是否合法。import os,sysa=input()def ch...

    互联网上的每台计算机都有独一无二的编号,称为IP地址,每个合法的IP地址由“.”分开的4个数字组成,并且IP地址细分类型的话,可以分为“A” “B” “C” "D" "E"类,我们常常使用的是C类IP地址所以第一个数字组成开头不能含有“0”,因为那是A类IP地址专属的,好奇的朋友可以去查查哦。

    现在用户输入一个字符串(不含有空格)判断是否合法。

    import os,sys

    a=input()

    def check_ip(ip):

    import sys

    sc=ip.strip().split('.')

    if len(sc)!= 4:

    print( "check ip address failed!")

    sys.exit()

    for i in range(4):

    b=len(sc[i])

    c=sc[i]

    for j in range(b):

    if c[j]==" ":

    print ("check ip address failed!")

    sys.exit()

    j+=1

    try:

    sc[i]=int(sc[i])

    except:

    print ("check ip address failed!")

    sys.exit()

    if sc[i]<=255 & sc[i]>=0:

    pass

    else:

    print ("check ip address failed!")

    sys.exit()

    i+=1

    else:

    print ("check ip address success!")

    if len(sys.argv)!=2:

    print ("Example: %s 10.0.0.1 "%sys.argv[0] )

    sys.exit()

    else:

    check_ip(sys.argv[1])

    print(check_ip(a))

    以上代码我个人觉得是比较简单易懂的方法,当然用的时候要注意复制过后的每行空格格式。因为PYTHON的空格是抓的非常的严格的。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • 互联网上的每台计算机都有...现在用户输入一个字符串(不含有空格)判断是否合法。 import os,sys a=input() def check_ip(ip): import sys sc=ip.strip().split('.') if len(sc)!= 4: print( "check ip addr
  • 互联网上的每台计算机都有独一无二的编号,称为IP地址,每个合法的IP地址由“.”分开的4个数字组成,并且IP地址细分类型的话,...现在用户输入一个字符串(不含有空格)判断是否合法。import os,sysa=input()def ch...
  • 题目:判断输入的字符串是不是一个有效的IP地址 详细描述: 请实现如下接口  boolisIPAddressValid(constchar* pszIPAddr)  输入:pszIPAddr 字符串  输出:true 有效的IP地址,false,无效的IP地址 ...
  • 多数人看到这篇日志,第一印象肯定是以为是要讲...判断是否合法IPif(filter_var($ip, FILTER_VALIDATE_IP)) {// it's valid}else {// it's not valid}判断是否合法的IPv4 IP地址if(filter_var($ip, FILTER_VALID...
  • Java 判断IP地址合法性0.前言有时候我们要对用户输入的IP地址进行校验,判断这个IP地址是不是一个合法的IP地址。1.实现思路最简单的实现方法是构造一个正则表达式。判断用户的输入与正则表达式是否匹配。若匹配则...
  • 如何判断一个字符串是否合法IP地址。 import java.util.Scanner; public class MyTest { public static void main(String[] args) { /* * 如何判断一个字符串是否合法IP地址。 */ Scanner sc=...
  • 从运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP、邮件地址等。那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考。思路:IP由四位数字组成,以点分割,每个字段不能...
  • 判断IP地址合法性(Java)

    万次阅读 2016-09-30 13:03:43
    0.前言有时候我们要对用户输入的IP地址进行校验,判断这个IP地址是不是一个合法IP地址。 1.实现思路最简单的实现方法是构造一个正则表达式。判断用户的输入与正则表达式是否匹配。若匹配则是正确的IP地址,否则...
  • Java 判断IP地址合法性0.前言有时候我们要对用户输入的IP地址进行校验,判断这个IP地址是不是一个合法的IP地址。1.实现思路最简单的实现方法是构造一个正则表达式。判断用户的输入与正则表达式是否匹配。若匹配则...
  • ip地址进行判断, 可以用很多方法, 比如正则表达式, 直接解析法。 但是
  • 最近在项目中突然遇到了主题的这个问题,当时匆匆一想,好像觉得还挺简单的吧?结果代码一写,发现还真的听过case需要考虑的呀! 改天抽空把测试代码共享出来。。。未完待续。。。 ...
  • 1.输入一个IP地址字符串(支持16进制和10进制),判断ip是否合法,例如ip为“192.1.0.1”返回ture,ip为“266.266.266.1”,返回false。 程序思路 1、要把ip地址分隔开,当然是用“.”分割。 2、ip地址有十进制和16...
  • 利用函数:inet_addr unsigned long inet_addr( ... MessageBox("IP地址错误,请重新设置");  }   *******************************************************************    
  • 如何判断一个字符串是否合法IP地址。 要求: 1. 不能使用正则表达式和自带的库函数。 2. 列出全部测试用例,并给出原因。
  • 来自 | 李振良的技术博客链接 | http://t.cn/RQEqmBE从运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP、邮件地址等。那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所...
  • 不需要正则表达式来判断,因为在php5.2.0之后,有专门的函数来做这个判断了。 判断是否合法IP if(filter_var($ip,FILTER_VALIDATE_IP)){ ...判断是否合法的IPv4IP地址 if(filter_var($ip,FILTER_VALID...
  • 本文主要介绍了php 判断IP为有效IP地址的方法,需要的朋友可以参考下,希望能帮助到大家。非也,在php5.2.0之后,有专门的函数来做这个判断了。判断是否合法IPif(filter_var($ip, FILTER_VALIDATE_IP)) {// it's ...
  • 多数人看到这篇日志,第一印象肯定是以为是要讲...判断是否合法IPif(filter_var($ip, FILTER_VALIDATE_IP)) {// it's valid}else {// it's not valid}判断是否合法的IPv4 IP地址if(filter_var($ip, FILTER_VALID...
  • 正则表达式来判断是否合法IPif ( preg_match( '#^(([1-9]?\d|1\d\d|25[0-5]|2[0-4]\d)\.){3}([1-9]?\d|1\d\d|25[0-5]|2[0-4]\d)$#', $ip ) ) {echo "it's valid";}else{echo "it's not valid";}php自带函数来...
  • 多数人看到这篇日志,第一印象肯定是以为是要讲...判断是否合法IPif(filter_var($ip, FILTER_VALIDATE_IP)) {// it's valid}else {// it's not valid}判断是否合法的IPv4 IP地址if(filter_var($ip, FILTER_VALID...
  • 根据子网掩码的定义,理论上,合法IP段中所包含的IP地址数量只可能是1、2、4、8、16、32、64、128……(2的n次方,n≥0)。子网掩码对应CIDR值所以,对于任意两个合法IP段,在这个横轴上不会存在“部分相交”的可能...

空空如也

空空如也

1 2 3 4 5 6
收藏数 115
精华内容 46
关键字:

如何判断ip地址是否合法