谁能告诉我如何从接口IP地址获取接口索引?
例如如果接口ip地址为192.168.23.25,则它是接口索引.
我想补充一点,我需要在用c编写的一个代码中使用它,所以如果有的话
有一些选择可以给我基于接口索引号
接口的IP地址.
解决方法:
您应该可以使用getifaddrs()来执行此操作.它应该考虑到MarkR对辅助地址的担心.作为测试,
添加如下内容后:
ip addr add 192.168.25.23/24 dev eth0
在手册页上编译并运行示例程序应显示以下内容:
lo address family: 17 (AF_PACKET)
eth0 address family: 17 (AF_PACKET)
lo address family: 2 (AF_INET)
address: <127.0.0.1>
eth0 address family: 2 (AF_INET)
address: <192.168.1.105>
eth0 address family: 2 (AF_INET)
address: <192.168.25.23>
lo address family: 10 (AF_INET6)
address: <::1>
eth0 address family: 10 (AF_INET6)
address: <:82d6:baaf:fe14:4c22>
在遍历列表时,您应该能够获得索引,但是您还可以另外查看if_nametoindex()、if_indextoname()和if_nameindex()函数.由于您将地址与接口名称相关联,因此可以适当地调用它们.
标签:tcp,networking,linux
来源: https://codeday.me/bug/20191024/1918624.html