码迷,mamicode.com
首页 > 编程语言 > 详细

华为面试题:识别有效的ip地址和子网掩码并分类 C语言源码

时间:2015-03-05 09:15:44      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:华为   面试题   c   源码   识别有效的ip地址   

识别有效的ip地址和子网掩码并分类:
按行输入多组数据 
10.8.9.2~255.0.0.0
180.8.9.2~255.254.0.0
打印:A B C D E 错误的ip或掩码 私有ip  的个数
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define MAX_PATH 256

int maze[10][10] = {0};
int route[100][2] = {0};

int impl(char *ip,char *mask,int *privateIp)
{
	char *a = strtok(ip,".");
	char *b = strtok(NULL,".");
	char *c = strtok(NULL,".");
	char *d = strtok(NULL,".");

	if (!(a && b && c && d))
	{
		return 5;
	}
	int ai = atoi(a);
	int bi = atoi(b);
	int ci = atoi(c);
	int di = atoi(d);
// 	char *a1 = strtok(mask,".");
// 	char *b1 = strtok(NULL,".");
// 	char *c1 = strtok(NULL,".");
// 	char *d1 = strtok(NULL,".");

	if(ai>0 && ai<=126 && strcmp(mask,"255.0.0.0")==0)
	{
		if (ai==10 && bi>=0 && bi<=255)
		{
			*privateIp = 1;
		}
		return 0;
	}
	else if(ai>=128 && ai<=191 && strcmp(mask,"255.255.0.0")==0)
	{
		if (ai==172 && bi>=16 && bi<=31)
		{
			*privateIp = 1;
		}
		return 1;
	}
	else if(ai>=192 && ai<=223 && strcmp(mask,"255.255.255.0")==0)
	{
		if (ai==192 && bi==168)
		{
			*privateIp = 1;
		}
		return 2;
	}
	else if(ai>=224 && ai<=239)
	{
		return 3;
	}
	else if(ai>=240 && ai<=255)
	{
		return 4;
	}
	else
	{
		return 5;
	}
}
int main()
{

// 	char test[4][100]={"10.70.44.68~255.254.255.0",
// 		"1.0.0.1~255.0.0.0",
// 		"192.168.0.2~255.255.255.0",
// 		"19..0.~255.255.255.0"};
	
	int result[7] = {0};
	char test[100] = {0};
	while(scanf("%s",test)!=EOF)
	{
		char *ip = strtok(test,"~");
		char *mask = strtok(NULL,"~");
		int n = impl(ip,mask,&result[6]);
		result[n]++;
	}
// 	for (int i=0;i<4;i++)
// 	{
// 		char *ip = strtok(test[i],"~");
// 		char *mask = strtok(NULL,"~");
// 		int n = impl(ip,mask,&result[6]);
// 		result[n]++;
// 	}
	for (int i=0;i<7;i++)
	{
		printf("%d ",result[i]);
	}
	return 0;
}


 

华为面试题:识别有效的ip地址和子网掩码并分类 C语言源码

标签:华为   面试题   c   源码   识别有效的ip地址   

原文地址:http://blog.csdn.net/hepfei90/article/details/44077733

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!