pcap 라이브러리를 쓴 프로그램인데 봐주셔요.
글쓴이: romz1212 / 작성시간: 토, 2008/03/08 - 4:14오후
#include "stdio.h" #include "pcap.h" #include "winsock2.h" int main(int argc, char **argv) { pcap_if_t *alldevs; pcap_if_t *d; char errbuf[PCAP_ERRBUF_SIZE]; int i=0; 위에는 pcap_findalldevs 를 위한 변수들이구요 char *dev; bpf_u_int32 net; bpf_u_int32 mask; SOCKADDR_IN net_addr, mask_addr; 이 위는 pcap_lookupnet 을 위한 변수들입니다. if(pcap_findalldevs(&alldevs, errbuf) == -1){ perror(errbuf); exit(1); } for(d=alldevs; d; d=d->next){ if(d->description){ printf("%s\n", d->description); dev = d->description; pcap_lookupnet(dev, &net, &mask, errbuf); net_addr.sin_addr.s_addr=net; mask_addr.sin_addr.s_addr=mask; printf("%s\n", inet_ntoa(net_addr.sin_addr)); printf("%s\n", inet_ntoa(mask_addr.sin_addr)); } else printf(" (No description available)\n"); } system("pause"); return 0; }
실행 결과를 보니
네트워크 디바이스 별명은 잘 잡았더군요.
근데 네트워크 어드레스랑 넷마스크는 전부 0.0.0.0 으로 뜨네요.
윈도우에서는 제대로 작동하지 않는 건가요?
그리고 위와는 별개로 pcap_lookupdev()를 이용해서 프로그램을 짤 경우엔
디바이스를 못잡는지 디바이스 별명을 자꾸 '\' 이걸로 잡습니다.
코드에 문제가 있는지 궁금하네요.
Forums:
댓글 달기