[C언어] IP 유효성 검사하기
C언어 IP 유효성 검사하기
=====> Source Code <=====
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <unistd.h>
#include <stdlib.h>
bool ip_check(char *ip)
{
if(strcmp(ip, " ") == 0)
{
printf("IP address NULL!\n");
return false;
}
int len = strlen(ip);
if( len > 15 || len < 7 )
return false;
int nNumCount = 0;
int nDotCount = 0;
int i = 0;
for( i=0; i<len; i++)
{
if(ip[i] < '0' || ip[i] > '9')
{
if(ip[i] == '.')
{
++nDotCount;
nNumCount = 0;
}
else
return false;
}
else
{
if(++nNumCount > 3)
return false;
}
}
if(nDotCount != 3)
return false;
return true;
}
int main(int argc, char **argv[])
{
char ip[15];
printf("IP Input!\n");
printf("[Usage] IP : 192.168.1.1\n");
printf("IP : ");
scanf("%s", &ip);
printf("Your press ip : %s\n", &ip);
if(ip_check(ip) == false)
{
printf("IP not availd!\n");
}
else
{
printf(" IP OK\n");
}
exit(0);
}
=====> 설명 <=====
사용자로부터 ip를 입력받고 난 후, 검사를 시작하게 됩니다.
검사를 하는 동안에 각 자리수가 3자리수인지를 확인하고, 일단은 전체 ip 문자열의 길이가
xxx.xxx.xxx.xxx을 초과하는지 검사를 하게 됩니다.
위의 검사를 통과하게 되면은 각 자리별로 0~9인지 검사를 하게 되며,
검사가 끝남과 동시에 각 자리수별로 xxx 3자리수가 맞는지 아니면 false값을 return 하게 됩니다.
간단하게 소스코드를 제작해 보았습니다.
아래의 출저에서 사용자가 이해하기 쉽게 main을 구성하여 간단한 테스트 프로그램을 작성하였습니다.
출저 : http://a.tk.co.kr/321 < Kyuseo의 게임 프로그래밍 > 블로그에서 발췌함을 알려드립니다.