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:


댓글 달기