Chinaunix首页 | 论坛 | 博客
  • 博客访问: 465024
  • 博文数量: 80
  • 博客积分: 2301
  • 博客等级: 大尉
  • 技术积分: 884
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-16 20:07
个人简介

I\'m interested in mathematics and Daoism. Welcome to talk about these subjects with me.

文章分类

全部博文(80)

文章存档

2017年(2)

2016年(16)

2015年(4)

2014年(6)

2013年(22)

2012年(2)

2011年(1)

2010年(4)

2009年(20)

2008年(2)

2007年(1)

我的朋友

分类: C/C++

2013-01-31 13:37:01

/*
 * return value:
 * 1: succ
 * 0: not
 * */
static int is_valid_ip_addr(const char* ip)
{
    const char* str = ip;
    int i = 0;
    int j = 0;
    int number = 0;
    int number_count = 0;

    if(str[0] == '.') 
	return 0;

    while(ip[i] != '\0')
    {
	if (number_count == 4)
	{
	    return 0;
	}

	if((ip[i] != '.') && ((ip[i] < '0') || (ip[i] > '9')))// neither is '.' nor is a number
	{
	    return 0;
	}

	if(ip[i] == '.')
	{ 
	    number = atoi(str);
	    if ((number < 0) || (number > 255))
		return 0;
	    //printf("number = %d\n", number);

	    str = ip + i + 1;
	    if(str[0] == '\0')//the last char is '.'
	    {
		return 0;
	    }

	    ++number_count;
	}
	i++;
    }

    if(number_count <= 2) 
	return 0;

    if(number_count == 3) 
    {
	number = atoi(str);
	if ((number < 0) || (number > 255))
	    return 0;
	printf("number = %d\n", number);
	return 1;
    }
    return 1;
}

阅读(1375) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~