Pokaż wyniki 1 do 4 z 4

Temat: c++

  1. #1
    Zarejestrowany
    Sep 2007
    Postów
    55

    Domyślnie Socket RAW

    Czy jesli ustawie socketa (SOCK_RAW) to przechwyci mi wszystkie pakiety z internetu (zalozmy ze mam ustawiony promisc mode) ?
    Ostatnio edytowane przez oneat : 09-28-2009 - 22:09

  2. #2
    Avatar rafal44
    rafal44 jest offline logout
    Zarejestrowany
    Dec 2007
    Postów
    291

    Domyślnie

    Poczytaj: http://www.linuxpl.org/LPG/node86.html
    Będzie to raczej PF_PACKET.
    I tamat nazwałbyś inaczej.
    "a imię jego będzie czterdzieści i cztery"
    A. Mickiewicz Dziady cz. III

  3. #3
    Zarejestrowany
    Sep 2007
    Postów
    55

    Domyślnie

    Sorry za temat.
    Juz zmienilem.
    A czy taki trick pójdzie na windzie

  4. #4
    Avatar rafal44
    rafal44 jest offline logout
    Zarejestrowany
    Dec 2007
    Postów
    291

    Domyślnie

    Na windzie raczej będzie ciężko z surowymi gniazdami, polecam Winpcap, nawet jeżeli chcesz napisać coś sam poczytaj źródła biblioteki.

    Natomiast pod linuksem jest to proste:
    Kod:
    int sockfd;
    sockfd=socket(PF_PACKET,SOCK_RAW,htons(ETH_P_ALL));
    //ustawiamy promisc
    struct ifreq ifr;
    sprintf(ifr.ifr_name,"eth0"); //nazwa interfejsu może być inna
    ioctl(sockfd,SIOCGIFFLAGS,&ifr);
    
    ifr.ifr_flags|=IFF_PROMISC;
    ioctl(sockfd,SIOCSIFFLAGS,&ifr);
    //możemy czytać z gniazda
    Ostatnio edytowane przez rafal44 : 09-29-2009 - 16:14
    "a imię jego będzie czterdzieści i cztery"
    A. Mickiewicz Dziady cz. III

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj