linux获取本机ip

mac2022-06-30  75

int get_ip ( in_addr_t addrs[], int asize  ) {         int MAXINTERFACES=16;         int i = 0;         int fd, intrface = 0;         struct ifreq buf[MAXINTERFACES]; ///if.h         struct ifconf ifc; ///if.h         in_addr_t loopback;         if ((fd = socket (AF_INET, SOCK_DGRAM, 0)) < 0) //socket.h                 return -1;          ifc.ifc_len = sizeof buf;         ifc.ifc_buf = (caddr_t) buf;         if (ioctl (fd, SIOCGIFCONF, (char *) &ifc) < 0) //ioctl.h                 return -1;          intrface = ifc.ifc_len / sizeof (struct ifreq);           loopback = inet_addr("127.0.0.1");         for (int j = 0; j < intrface && i < asize; ++j)         {                    if (ioctl (fd, SIOCGIFADDR, (char *) &buf[j]) < 0)                 {                            continue;                 }                      struct sockaddr addr = buf[j].ifr_addr;                     if (loopback ==                                 ((sockaddr_in*)&addr)->sin_addr.s_addr)                 {                            continue;                 }                      addrs[i] = ((sockaddr_in*)&addr)->sin_addr.s_addr;//types                 ++i;           }            close (fd);         return i; } 

转载于:https://www.cnblogs.com/chimmu/p/6212307.html

相关资源:Konva基础文档
最新回复(0)