要使用最佳路由匹配,需要在我们的程序中包含 Iphlpapi.h 头文件,这是标准的 Windows API,因此可以使用如下代码:
#include <Iphlpapi.h>
复制代码
所谓最佳路由,其实就是找网关,方法是调用函数 GetBestRoute 计算出到达某个公网地址“114.114.114.114”的下一跳地址,通常就是网卡上配置的网关地址。接着逐个计算网络驱动接口上的 IP 是否与下一跳地址在相同网段,如果确实在相同网段,那么则拥有该 IP 的接口就是我们要使用的接口。关于 IP 路由的基础知识,如果您不是很了解的话,可以参考本站教程:[图解] IP 路由基础。通过最佳路由选定网络接口(网卡)的代码如下:
PMIB_IPFORWARDROW pBestRoute = new MIB_IPFORWARDROW;