Mac OS X에서 C로 코딩 된 간단한 패킷 스니퍼를 실행할 때 전혀 출력이 없습니다. 이상한 일입니다! 누군가가 내가 무슨 일이 벌어지고 있는지 이해할 수있게 도와 줄 수 있을까요?Mac OS X의 이상한 원시 소켓
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(void) {
int i, recv_length, sockfd;
u_char buffer[9000];
if ((sockfd = socket(PF_INET, SOCK_RAW, IPPROTO_TCP)) == -1) {
printf("Socket failed!!\n");
return -1;
}
for(i=0; i < 3; i++) {
recv_length = recv(sockfd, buffer, 8000, 0);
printf("Got some bytes : %d\n", recv_length);
}
return 0;
}
나는 그것을 컴파일하고 내 상자에서 실행 아무것도 진행되지 않은 : 당신의 도움에 대한
MacOsxBox:Desktop evariste$sudo ./simpleSniffer
감사합니다.
원시 소켓을 직접 열지 않고 libpcap을 사용하면 더 편리 할 수 있습니다. – duskwuff