Linux 获取本机IP地址

Linux 获取本机IP地址

ID:38047867

大小:24.50 KB

页数:3页

时间:2019-05-24

Linux 获取本机IP地址_第1页
Linux 获取本机IP地址_第2页
Linux 获取本机IP地址_第3页
资源描述:

《Linux 获取本机IP地址》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、IP地址分为IPv4和IPv6,本文只验证了IPv4的获取,至于IPv6还没有验证。 说明:family=AT_INET:IPv4family=AT_INET6:IPv6address:提取得到的IP地址所要保存的地址size=strlen(sampleIP)192.168.123.128       MAX_IPv4=15某些头文件应在其他方面,在本程序中没用得上。不过不影响程序的编译。programlist: #include#include#include#include#incl

2、ude#include#include#include#include#include#include    #include  #include     #include   #include      intGetIP_v4_and_v6_linux(intfamily,char*address,intsize){   struc

3、tifaddrs*ifap0,*ifap;   charbuf[NI_MAXHOST];   char*interface="eth0";   structsockaddr_in*addr4;   structsockaddr_in6*addr6;   intret;     if(NULL==address)      {             return-1;         }      if(getifaddrs(&ifap0))      {        return-1;        }        for(ifap=ifap0;ifap!=NULL

4、;ifap=ifap->ifa_next)     {      if(strcmp(interface,ifap->ifa_name)!=0)continue;      if(ifap->ifa_addr==NULL)continue;      if((ifap->ifa_flags&IFF_UP)==0)continue;      if(family!=ifap->ifa_addr->sa_family)continue;      if(AF_INET==ifap->ifa_addr->sa_family)       {        addr4=(stru

5、ctsockaddr_in*)ifap->ifa_addr;        if(NULL!=inet_ntop(ifap->ifa_addr->sa_family,              (void*)&(addr4->sin_addr),buf,NI_MAXHOST))             {              if(size  <  strlen(buf))break;              strcpy(address,buf);              printf("IPv4=%s",address);//testing       

6、       freeifaddrs(ifap0);              return0;             }      elsebreak;                               }     elseif(AF_INET6==ifap->ifa_addr->sa_family)        {         addr6=(structsockaddr_in6*)ifap->ifa_addr;         if(IN6_IS_ADDR_MULTICAST(&addr6->sin6_addr))             {cont

7、inue;             }         if(IN6_IS_ADDR_LINKLOCAL(&addr6->sin6_addr))             {continue;             }           if(IN6_IS_ADDR_LOOPBACK(&addr6->sin6_addr))             {continue;             }         if(IN6_IS_ADDR_UNSPECIFIED(&addr6->sin6_addr))           

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。