Ip und Subnetzmaske
-
Hab ein kleines Praogram das mir die IP und die Netzmaske eines Interfaces liefern soll:
/* net.c */ #include "net.h" #include "headers.h" struct in_addr getIP(char *iface) { int fd; struct ifreq ifip; fd = socket(AF_INET, SOCK_DGRAM, 0); ifip.ifr_addr.sa_family = AF_INET; strncpy(ifip.ifr_name, iface, IFNAMSIZ-1); ioctl(fd, SIOCGIFADDR, &ifip); close(fd); return ((struct sockaddr_in *) &ifip.ifr_addr)->sin_addr; } struct in_addr getMask(char *iface) { int fd; struct ifreq ifmask; fd = socket(AF_INET, SOCK_DGRAM, 0); ifmask.ifr_addr.sa_family = AF_INET; strncpy(ifmask.ifr_name, iface, IFNAMSIZ-1); ioctl(fd, SIOCGIFNETMASK, &ifmask); close(fd); return ((struct sockaddr_in *) &ifmask.ifr_addr)->sin_addr; }
/* test.c */ #include "net.h" #include "headers.h" int main(void) { printf("%s\n%s", inet_ntoa(getIP("wlan0"), inet_ntoa(getMask(wlan0"))); return 0; }
Nur gibs mir in diesem Fall jetzt 2x die IP aus, wieso??
-
Das ist nicht wirklich eine C-Frage. Da ich mit mit rohen Sockets nicht so auskenne, als dass ich erkennen könnte ob das nun Winsockets oder POSIX-Sockets sind: Wohin möchtest du verschoben werden?
-
sind POSIX sockets...
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.