热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxconnectip历史,Linux下IPV6Connect

最近在模拟测试IPv6客户端连接服务器,但是总会报参数不正确,后来我使用strace追踪java-SocketTest(ipv6测试工具)的连接发现IP

最近在模拟测试IPv6客户端连接服务器,但是总会报参数不正确,后来我使用strace追踪java-SocketTest(ipv6测试工具)的连接发现IPv6 Connect需要初始化sin6_scope_id字段,才可以Connect successserver_addr.sin6_scope_id = if_nametoindex("eth0");

if_nametoindex函数定义:#include unsigned if_nametoindex(const char *ifname); char *if_indextoname(unsigned ifindex, char *ifname); struct if_nameindex *if_nameindex(void); void if_freenameindex(struct if_nameindex *ptr);

if_nametoindex():指定网络接口名称字符串作为参数;若该接口存在,则返回相应的索引,否则返回0

if_indextoname():指定网络接口索引以及一块长度至少为IF_NAMESIZE(16)字节的内存区域作为参数;若索引对应的网络接口存在,则在内存区域中返回该接口的名称字符串,否则返回NULL,并将errno设置为相应的值

if_nameindex():返回动态分配的struct if_nameindex结构数组,数组中的每一个元素分别对应一个本地网络接口;struct if_nameindex结构的if_index字段为接口索引,if_name字段为接口名称字符串;索引为0且名称字符串为NULL表示结构数组的末尾;调用出错时,返回NULL,并将errno设置为相应的值

if_freenameindex():通过if_nameindex()获取完毕接口名称与索引后,调用该函数以释放动态分配的内存区域。



推荐阅读
author-avatar
fjy69
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有