S
für ein spezielles lokales interface..
#include <stdio.h>
#include <sys/ioctl.h>
#include <linux/sockios.h>
#include <sys/socket.h>
#include <net/if.h>
#include <arpa/inet.h>
#define IFACE "eth0"
int main(void)
{
int s;
struct ifreq ifr;
s = socket(AF_INET,SOCK_DGRAM,0);
memset(&ifr,0,sizeof(struct ifreq));
strncpy(ifr.ifr_name,IFACE,IF_NAMESIZE);
ioctl(s,SIOCGIFADDR,&ifr);
printf("%s\n",inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
return 0;
}