MACOS上面C/C++获取网卡索引,索引获取网卡接口名

依赖函数:

if_nametoindex IF名字 to IF索引

if_indextoname IF索引 to IF名字

MACOS 10.7 版本支援(就是2011年发不OSX的第一个面向用的系统版本)

cpp 复制代码
        int GetInterfaceIndex(const ppp::string& ifrName) noexcept
        {
            if (ifrName.empty())
            {
                return -1;
            }

            int interface_index = (int)if_nametoindex(ifrName.data());
            if (interface_index == 0 || interface_index == -1)
            {
                return -1;
            }

            return interface_index;
        }

        bool GetInterfaceName(int interface_index, ppp::string& ifrName) noexcept
        {
            ifrName.clear();
            if (interface_index == 0 || interface_index == -1)
            {
                return false;
            }

            char buf[255];
            if (if_indextoname((unsigned int)interface_index, buf))
            {
                char ch = *buf;
                if (ch == '\x0')
                {
                    return false;
                }

                ifrName = buf;
                return true;
            }
            else
            {
                return false;
            }
        }
相关推荐
kloc2 小时前
聊天室项目入口网关子服务的实现
linux·c++
饮水桶_T3 小时前
JAVA IO流笔记
开发语言·数据结构·算法
csdn_aspnet5 小时前
C++ 3个有序点的方向(Orientation of 3 ordered points)
c++·算法
Felven5 小时前
C. Brr Brrr Patapim
c语言·开发语言
小七在进步6 小时前
string的使用(2)
c++
路溪非溪6 小时前
python标准库使用总结
开发语言·python
青少儿编程课堂7 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:折半搜索优化子集枚举(Meet in the Middle)解析
c++·python·算法·bfs·信息学竞赛
Zwawa7 小时前
嵌入式OLED表驱动菜单:用一张表、一个栈和一个窗口重写表驱动菜单
c语言·单片机·嵌入式
SomeOtherTime8 小时前
Rust 面向对象介绍(AI回答)
开发语言·python·rust
wo_jack8 小时前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list