本人最近getaddrinfo函数获取本机IP地址,本机的IPV4地址能正确获得,但本机IPV6地址只能获得环路地址,即::1。为什么不能获得IPV6的Global地址或链路本地地址。恳请指点,不胜感激!如果还有其它获取方法请告知,谢谢!源代码如下:

char AddrName[128];

int RetVal;

BOOL RunForever = FALSE;

WSADATA wsaData;

struct addrinfo Hints, *AddrInfo, *AI;

CString str;

if ((RetVal = WSAStartup(MAKEWORD(2, 2), &wsaData)) != 0)

{

str.Format(“WSAStartup failed with error %d\n“,RetVal);

m_listbox.AddString( str );

WSACleanup();

return ;

}

char szhostname[128];

memset(szhostname,0,128);

memset(&Hints, 0, sizeof(Hints));

Hints.ai_family = AF_UNSPEC;

//Hints.ai_family = AF_INET6;

Hints.ai_socktype = SOCK_STREAM;

Hints.ai_flags=AI_CANONNAME;

gethostname(szhostname,sizeof(szhostname));

RetVal = getaddrinfo(static_cast(szhostname),0, &Hints, &AddrInfo);

if (RetVal != 0)

{

str.Format(“不能解析:主机[%s],错误 %d: %s\n“,szhostname, RetVal, gai_strerror(RetVal));

m_listbox.AddString( str );

WSACleanup();

return;

}

//将IP 地址转换成数字式字符文本

for (AI=AddrInfo; AI!= NULL;AI=AI->ai_next)

{

if (getnameinfo(AI->ai_addr,AI->ai_addrlen,AddrName,sizeof(AddrName),NULL,0,NI_NUMERICHOST) != 0)

strcpy(AddrName, ““);

str.Format(“IPv%d: %s\n“,(AI->ai_family==AF_INET6?6:4), AddrName);

m_listbox.AddString( str );

}

WSACleanup();

人打赏

0人 点赞

主帖获得的天涯分:0

举报 |

楼主

|

楼主发言:1次 发图:0张 | 添加到话题 |

如何通过c语言获取ipv6邻居表,急求在vc++6.0中获取IPV6地址的方法,高手请进,谢谢!!...相关推荐

  1. python更新数据库表的时间字段_python更新数据库中某个字段的数据(方法详解)

    连接数据库基本操作,我把每一步的操作是为什么给大家注释一下,老手自行快进. 请注意这是连接数据库操作,还不是更新. import pymysql #导包 #连接数据库 db = pymysql.con ...

  2. IPV6邻居发现协议(NDP)

    概述 NDP(Neighbor Discovery Protocol,邻居发现协议)是IPv6的一个关键协议,它组合了IPv4中的ARP.ICMP路由器发现和ICMP重定向等协议,并对它们作了改进.作 ...

  3. C语言如何获取ipv6地址

    使用通常获取ipv4的IP地址的方法是无法获取ipv6地址的,本文介绍了使用C语言获取ipv6地址的三种方法:从proc文件从系统获取ipv6地址.使用getifaddrs()函数获取ipv6地址和使 ...

  4. 访问一下互联网中的IPV6主机

    访问一下互联网中的IPV6主机 利用隧道代理实现互联网中访问IPv6主机 在https://tunnelbroker.net/ 注册账号 在tunnelbroke创建一条隧道(首先确保你的IP是公网I ...

  5. linux内核的邻居表,Linux内核报文收发-L3 - Section 3. IP协议、邻居子系统主要是接收、转发和发送三部分...

    版本说明 Linux版本: 3.10.103 网卡驱动: ixgbe 网络协议注册 inet_init主要是注册各种协议 注册TCP协议proto_register(&tcp_prot, 1) ...

  6. IPV6 邻居发现协议(NDP)

    IPV6除了显著增加了地址空间外,另一个最显著的特征就是它的即插即用性. 邻居发现协议(Neighbor Discovery Protocol,NDP)就是使用以下的功能实现即插即用特性的协议: 路由 ...

  7. IPv6邻居发现协议NDP

    邻居发现协议NDP 邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议.邻居发现协议替代了IPv4的ARP(Address Resolu ...

  8. IPv6邻居发现协议添加默认路由

    在接收到邻居发现协议的RA(Router Advertisement)报文之后,由ndisc_router_discovery处理.首先,以此报文的源地址查找是否存在默认的路由器(rt6_get_df ...

  9. IPv6邻居发现协议

    邻居发现协议NDP 邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议.邻居发现协议替代了IPv4的ARP(Address Resolu ...

最新文章

  1. lucene正向索引(续)——域(Field)的元数据信息在.fnm里,在倒排表里,利用跳跃表,有利于大大提高搜索速度。...
  2. SpringBoot升级到2.3.x后返回message为空
  3. Android-利用LinearGradient实现文字一闪一闪
  4. cisco的路由器上rip的被动接口,单播更新,水平分隔
  5. 品质体系及标准大集合(偏向软件)
  6. python123高次方程求根_GitHub - loveunk/math-advanced-algebra-notes: 根据丘维声的《高等代数》整理...
  7. linux C语言 SOCKET 服务器断开导致客户端SEND崩溃问题解决办法
  8. Java Web开发技术应用——监听器
  9. linux解压文件并命名,linux命名压缩解压文件
  10. 无线路由dns服务器地址,tplink无线路由器怎么设置DNS服务器地址
  11. F.grid_sample采样
  12. lic文件用计算机程序打开,后缀名是lic的文件用什么软件打开?
  13. 2019ICPC徐州 H - Yuuki and a problem (动态(带修)主席树 + 区间Mex问题)
  14. java实现-强智教务系统API文档-全部java封装
  15. 关闭自动降频 linux,Deepin Linux CPU无法进行自动降频的一个解决方法
  16. JMeter源码学习- 5.0版本源码本地构建
  17. 全站翻译分享---Localize平台的使用方式整理--Star.hou
  18. 只需这篇文章java线程池原理便懂了!♥♥
  19. OpenHarmony OpenSl ES音频播放开发
  20. 【开发随记】【提效】工作习惯那些事系列之一——To-Do List

热门文章

  1. Python中深浅拷贝的案例教程
  2. Python基础教程:函数名本质
  3. Python3-join()和split()的用法
  4. mysql慢查询日志时间戳_Mysql查询在时间戳的日期范围内非常慢
  5. 怎么查到mysql的账号密码是什么_怎么查到mysql的账号密码是什么?
  6. python sorted原理_Python sort()和sorted()
  7. 怎么判断程序运行的当前目录在哪?关键词:根目录
  8. VisualStudio opencv配置
  9. Kobe Bryant crash report
  10. python 文件操作 os 如何检索文件夹内文件数量