All pastes #749800 Raw Edit

getip.c

public c v1 · immutable
#749800 ·published 2007-10-25 22:47 UTC
rendered paste body
// Get the ipaddress#include <ifaddrs.h>#include <stdio.h>// Convert IP address 'struct in_addr' to 'dots-and-number'#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>int main(){  struct ifaddrs *id;  struct sockaddr_in *addr_sockaddr_in;  struct sockaddr_in *netmask_sockaddr_in;  char *ascii_ip_address;  int val;  val = getifaddrs(&id);  for ( ; id != NULL ; id = id->ifa_next)  {    if ( id->ifa_addr->sa_family == AF_INET )    {      if ( strcmp(id->ifa_name, "lo") != 0 )      {        printf("Network Interface: %s\n", id->ifa_name);        addr_sockaddr_in = (struct sockaddr_in *)(id->ifa_addr);        ascii_ip_address = inet_ntoa( addr_sockaddr_in->sin_addr );        printf("IP Address:        %s\n", ascii_ip_address);        if ( id->ifa_netmask != NULL )        {          netmask_sockaddr_in = (struct sockaddr_in *)(id->ifa_netmask);          ascii_ip_address = inet_ntoa( netmask_sockaddr_in->sin_addr );          printf("Netmask:           %s\n", ascii_ip_address);        }        break;      }    }  }  return 0;}