12 Mayıs 2015 Salı

IPPROTO_RAW socketi

Socketi Açmak
Layer 3 seviyesinde IP Header verilebilen socket şöyle açılır.
socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
Eğer socketi açarken -1 dönerse hata değeri errno ile alınır. errno EACCESS ise socketi açmak için yeterli haklara sahip olmadığımızı anlarız. Bu tür socketleri genelde root açar. Örnek
#include <sys/socket.h>
#include <netinet/in.h>

int main()
{ 
  int sd;
  if ((sd = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) < 0) {
    perror("socket() failed");
    return -1;
  }
  return 0;
} 




Hiç yorum yok:

Yorum Gönder