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;
            }
        }
相关推荐
Matlab程序猿小助手1 分钟前
【MATLAB源码-第277期】基于matlab的AF中继系统仿真,AF和直传误码率对比、不同中继位置误码率对比、信道容量、中继功率分配以及终端概率。
开发语言·网络·算法·matlab·kmeans·simulink
布兰妮甜4 分钟前
Node.js入门指南:开启JavaScript全栈开发之旅
开发语言·javascript·node.js
他们都不看好你,偏偏你最不争气10 分钟前
OC语言学习——面向对象(下)
开发语言·学习·objective-c·面向对象
小魏的马仔13 分钟前
【java】使用iText实现pdf文件增加水印功能
java·开发语言·pdf
李匠202415 分钟前
C++GO语言微服务项目之 go语言基础语法
开发语言·c++·后端·golang
虾球xz27 分钟前
游戏引擎学习第262天:绘制多帧性能分析图
c++·学习·游戏引擎
半路_出家ren1 小时前
Python操作MySQL
开发语言·python·计算机网络·mysql·网络安全
琢磨先生David1 小时前
Java 网络安全新技术:构建面向未来的防御体系
java·开发语言·web安全
涯边上的蒲公英1 小时前
挑战用豆包教我学Java01天
java·开发语言·人工智能
H2X7_2 小时前
C++之异常
开发语言·c++