判断IP地址是否有效

IP的有效值是1.0.0.1~255.255.255.255,写个程序,参数是一个char*的IP,返回这个IP是否有效。


// IPcheck.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
using namespace std;
//IP的有效值是1.0.0.1~255.255.255.255
bool checkIP(char* in);
int _tmain(int argc, _TCHAR* argv[])
{
	char*ip = "111.256.255.4";
	if (checkIP(ip))
		cout << "合法IP" << endl;
	else
		cout << "非法IP" << endl;
	system("pause");
	return 0;
}

bool checkIP(char* in)
{
	int k = 0;
	int sum = 0;
	while (*in != '\0')
	{
		while (*in != '.'&&*in != '\0')
		{
			int aa = *in - '0';
			if (aa < 0 || aa>9)
				return false;
			sum = 10 * sum + aa;
			++in;
		}
		if (*in != '\0')
			++in;
		++k;
		if (k == 2 || k == 3)
		{
			if (sum < 0 || sum > 255)
				return false;
		}
		if (k==1||k==4)
		{
			if (sum < 1 || sum > 255)
				return false;
		}
		if (k > 4)
			return false;
		sum = 0;
	}
	
	return true;
}


版权声明:

posted on 2015-07-07 23:45  moffis  阅读(1304)  评论(0编辑  收藏  举报

导航