Forum: PC-Programmierung raw socket IPPROTO_IP


von Janina (Gast)


Lesenswert?

Hallo Leute,
ich hoffe, dass ich nicht in falsche Forum bin.

ich wollte ein raw Socket mit IP Protocol mit folgendem Code haben
1
sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP)
2
 if(sock < 0){
3
    perror("socket()");
4
    exit(1);
5
  }

ich habe diese Meldung bekommen und weiß gerade nicht wo das Problem 
liegt.

socket(): Protocol not supported

Program exited with code 01.

Ich bin sehr dankbar für euere Hilfe

Gruß,
Janina

von Εrnst B. (ernst)


Lesenswert?

läufts als root? Normale User dürfen keine RAW-Sockets öffnen...

Evtl. mal das Programm unter strace laufen lassen, und schauen wie der 
socket-Aufruf an den Kernel geht.

Ansonsten häng mal ein compilierbares Minimalprogram zum ausprobieren 
an.

von Janina (Gast)


Lesenswert?

ja, das läuft als root.

>Evtl. mal das Programm unter strace laufen lassen, und schauen wie der
>socket-Aufruf an den Kernel geht.

wie kann ich das machen?

Gruß,
janina

von Εrnst B. (ernst)


Lesenswert?

Janina wrote:
>>Evtl. mal das Programm unter strace laufen lassen, und schauen wie der
>>socket-Aufruf an den Kernel geht.
>
> wie kann ich das machen?

statt
./programmname
einfach
strace ./programmname
zum starten verwenden.

Kommt ne menge Output vom Programmstart, gegen Ende sollte aber der 
Socket-Aufruf sichtbar sein, gefolgt von dem write (perror) und exit.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.