Linux c 获取 本 机 IP

  

Linux c 获取 本 机 IP

#include < stdio.h >

#include < sys /types.h >

#Include < sys /socket.h >

#include < sys /ioctl.h >

#include < netinet /in.h >

# incluir < net /if.h >

#include < net /if_arp.h >

#include < arpa /inet.h >

#include < errno.h >

#define ETH_NAME " eth0 "

int main ()

{

int sock;

struct sockaddr_in sin;

struct ifreq ifr;

sock = socket (AF_INET, SOCK_DGRAM, 0) ;

if (sock == -1)

{

perror (" socket ") ;

return -1;

}

strncpy (ifr.ifr_name, ETH_NAME, IFNAMSIZ) ;

ifr.ifr_name [IFNAMSIZ - 1] = 0;

if (ioctl (sock, SIOCGI FADDR, &ifr) < 0)

{

perror (" ioctl ") ;

return -1;

}

memcpy (&sin, &ifr.ifr_addr, sizeof (sin)) ;

printf (" eth0:% s \\ n ", inet_ntoa (sin.sin_addr)) ; <

return 0; br>

}

Copyright © Conocimiento de Windows All Rights Reserved