2013-10-09 2 views
1

현재 학사 학위 논문의 시작 단계에서 작업 중입니다. 문제는 게이트웨이 (일명 라우터)를 구현하는 것입니다. 나는 현재 원시 소켓을 열려고 노력하고있어 이더넷 패킷을 열어서 다른 종류의 필드를 확인한다.원시 소켓 만들기 - Debian + Codeblocks

저는 Codeblocks IDE를 사용하여 데비안 VM에 C++ 코드를 작성하고 있습니다. 시도는 다음과 같은 코드를 통해 원시 소켓을 열 때

나는 오류가 말을 얻을 :

Error creating raw socket: Operation not permitted 

코드 : 좀 주위를 검색 한하지만 난 고칠 수없는 것

int CreateRawSocket(int protocol_to_sniff) 
    { 
     int s; 

     if((s = socket(PF_PACKET, RAW_SOCK, htons(protocol_to_sniff))) == -1) 
     { 
      perror("Error creating raw socket"); 
      exit(-1); 
     } 

     return s; 
    } 

    int main() 
    { 

    int s = CreateRawSocket(ETH_P_ALL); 

    } 

문제는 무엇인지 알고 있다고 생각합니다. 지금까지 나는 그것이 사용 권한에 문제가 있음을 알았지 만, 코드 블럭 sudo 사용 권한을 부여하는 방법에 대한 단서가 없습니다.

아이디어가 있으십니까?

답변

0

해결했습니다. 그것은 실제로 실제로 간단했다.

내가 입력 :

 sudo codeblocks 

그것은 sudo를 권한으로 codeblocks을 열었지만, 그 터미널 창을 계속 실행했다거나이 종료 codeblocks을 것입니다.