ip를 비교해서 리턴값을 받고싶은데 비교가 되지 않네요....
글쓴이: cccc2002 / 작성시간: 목, 2003/08/28 - 10:51오전
비교를 어떻게 해야하나요...
#include int ipcompare(char *); int num; int main() { num =ipacompare("192.168.0.40"); printf("%d",num); return 0; } int ipcompare(char *buf) { int i; (char*)client_info[0].sin_addr.s_addr="192.168.0.22"; (char*)client_info[1].sin_addr.s_addr="192.168.0.33"; (char*)client_info[2].sin_addr.s_addr="192.168.0.44"; (char*)client_info[3].sin_addr.s_addr="192.168.0.40"; for(i=0;i<4;i++) if(*buf==(char*)client_info[i].sin_addr.s_addr) return i; }
Forums:
Re: ip를 비교해서 리턴값을 받고싶은데 비교가 되지 않네요....
두가지 실수를 했습니다.
첫째, 문자열 비교는 '=='로 비교 할 수 없습니다. 최소한 c에서는요..
strcpy()와 같은 함수를 사용해야 합니다.
두번째, s_addr은 type입니다. 아마 long type일텐데, string을
대입했지요.
inet_addr()와 같은 함수를 사용해야 합니다.
Re: ip를 비교해서 리턴값을 받고싶은데 비교가 되지 않네요....
급하게 다하 보니 좀 빠트렸네요..
요렇게 할 수 있겠지요. 이것이 정답은 아닙니다. 나름대로 구현 할 수도 있으니까..
또, 잘못한 것 중하나고, 문자열 대입입니다. 비교와 마찬가지로 '='를 사용
할 수 없습니다. c에서는요.. strcpy()같은 놈 사용해야 합니다.
참, 비교할때는 strcmp()입니다. 요즘 넘 바쁘다 보니 실수를.. ^^;
그래도 에러가....ㅡ.ㅜ
이분분에서 warning: comparison between pointer and integer
이런 에러가뜨네요..
그래도 에러가....ㅡ.ㅜ
이분분에서 warning: comparison between pointer and integer
이런 에러가뜨네요..
아래부분에서[quote]if(inet_addr(buf)==([b]ch
아래부분에서
이부분을 제거햇습니다.
ㅎㅎ.
댓글 달기