#include <regex.h>
int Check_IP_Addr(char *addr)
{
regex_t state;
const char *pattern="^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";
regcomp(&state, pattern, REG_EXTENDED);
//0=success else=fail
return regexec(&state, addr, 0, NULL, 0);
}
int Check_Email_Addr(char *addr)
{
regex_t state;
const char *pattern="^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$";
regcomp(&state, pattern, REG_EXTENDED);
//0=success else=fail
return regexec(&state, addr, 0, NULL, 0);
}
int main(void)
{
int i, ret;
char *ip[]={"192.168.0.24", "192.168.0.753", "192.168.0.1"};
char *email[]={"afewgood@afewgood.net", "example@test.com", "nonmail"};
for(i=0; i<3; i++)
{
ret = Check_IP_Addr(ip[i]);
if(ret != 0) printf("[%d] Incorrect IP address\n", i);
ret = Check_Email_Addr(email[i]);
if(ret != 0) printf("[%d] Incorrect Email Address\n", i);
}
}
결과
[1] Incorrect IP address
[2] Incorrect Email Address
'c' 카테고리의 다른 글
log파일 만들기 source (0) | 2023.02.07 |
---|---|
리눅스 IP충돌 체크 (0) | 2022.09.08 |
구조체 배열 인자로 넘겨서 채우기 (0) | 2022.08.11 |
리눅스 usb mount 예제 (0) | 2021.07.20 |
ASCII & 한글 완성형(KSC5601) 출력 소스 (0) | 2021.07.08 |