2013-08-29 1 views
0

나는 제공된 문자열에서 전자 메일 도메인을 가져온 다음 전자 메일 도메인에 대한 호스트 조회를 수행하는 작은 C 코드를 가지고 있습니다. 그것은 매우 간단하고 작동합니다. 이것이 더 단순화 될 수 있습니까? 보고 주셔서 감사합니다.이메일 도메인을 확인하는 더 나은 방법?

struct hostent *host; 
int at = 0, ei = 0; 
char email_host[MAX_HOSTNAME_LEN]; 
for (at = 0; at < strlen(argument); at++) 
{ 
    if (argument[at] == '@') 
    { 
     strcpy(&email_host[ei],&argument[at+1]); 
     ei++; 
    } 
} 
host = gethostbyname(email_host); 
if (!host ) 
    fail = TRUE; 
+0

: HTTP ://www.cplusplus.com/reference/cstring/strstr/ –

+4

도메인 부분의 일반 A 레코드가 아니라 MX 레코드를 검색해야합니다. 많은 도메인은 도메인의 루트 이름을 사용하여 호스트를 설정하지 않으며, 존재하는 경우 SMTP를 처리 할 수있는 기능이 전혀 없을 수도 있습니다. – tripleee

+1

@Scotty : 당신은'strchr'을 의미합니까? OP는 한 문자의 위치를 ​​찾고 있습니다. – usr2564301

답변

0

이 간소화 할 수 있습니다

if (argument[at] == '@') 
{ 
    strcpy(&email_host[ei],&argument[at+1]); 
    ei++; 
} 

단순히 :

당신은 꽤 많이, 나는 그것을 사용하는 것이 무엇`않는 strstr()`재 구현
if (argument[at] == '@') 
{ 
    strcpy(email_host,&argument[at+1]); 
}