设置固定ipv6地址 出现Scope:global Link 新地址ping不通

https://blog.csdn.net/y7u8t6/article/details/79531801

先参看上面连接了解Scope:global 和 Link的区别

Linux中设置的IPv6地址有两种类型,一种是Scope:Global,另一种为Scope:Link

。后者是有MAC地址通过一定的格式转换出来的全球唯一的本地链路地址。

项目中需要连接到对方的物理IPv6地址,但是在实际使用中发现两个问题,1、不能直接ping通。2、ping通了但是connect不上。这是因为,Scope:Link地址必须绑定网卡。

实际代码中的解决办法呢?同理,需要再connect之前绑定网卡,具体实现代码为:

setsockopt(sk, SOL_SOCKET, SO_BINDTODEVICE, "eth0", sizeof("eth0"));

但是这里就出现了一个问题,如果是双网卡要绑定eth0呢还是eth1呢?哈哈,这里还没有想到好的办法,暂时就是遍历绑定网卡。

原文地址:https://www.cnblogs.com/qijunzifeng/p/13753185.html