html代码大全txt,莱芜网站优化怎么做,石家庄网络公司推荐,王者荣耀网站建设的步骤http://blog.csdn.net/weiyuefei/article/details/22198659 之前项目原因#xff0c;需要获取当前服务器节点上所有网口的ip地址#xff0c;但是当时由于时间比较紧#xff0c;一直没搞出来#xff0c;最近没那么忙了#xff0c;又在网上找了一下#xff0c;终于实现了这…http://blog.csdn.net/weiyuefei/article/details/22198659 之前项目原因需要获取当前服务器节点上所有网口的ip地址但是当时由于时间比较紧一直没搞出来最近没那么忙了又在网上找了一下终于实现了这一个功能因此记录下来以备不时之需。 这种获取所有ip的方法主要是通过遍历所有网口信息而获取的即首先通过函数ioctl获取所有网口的信息然后再逐一遍历每个网口解析出网口对应的ip地址。下面是实现代码是经过验证的。 #include stdio.h #include stdlib.h #include unistd.h #include linux/types.h #include string.h #include sys/socket.h #include netinet/in.h #include net/if.h #include netdb.h #include arpa/inet.h #include sys/ioctl.h //获取地址 //返回IP地址字符串 //返回0成功-1失败 int get_all_localip() { int i 0; int sockfd; struct ifconf ifconf; char buf[512]; struct ifreq *ifreq; char *ip; //初始化ifconf ifconf.ifc_len 512; ifconf.ifc_buf buf; if((sockfd socket(AF_INET, SOCK_DGRAM, 0)) 0) { return -1; } ioctl(sockfd, SIOCGIFCONF, ifconf); //获取所有接口信息 close(sockfd); //接下来一个一个的获取IP地址 ifreq (struct ifreq*)buf; for(i (ifconf.ifc_len / sizeof(struct ifreq)); i 0; i--) { ip inet_ntoa(((struct sockaddr_in*)(ifreq-ifr_addr))-sin_addr); if(strcmp(ip,127.0.0.1) 0) //排除127.0.0.1继续下一个 { ifreq; continue; } printf(IP地址: %s\n, ip); ip NULL; ifreq; } return 0; } int main() { get_all_localip(); return 0; } 以上参考http://zhumeng8337797.blog.163.com/blog/static/1007689142012311082638/