我们使用的是最新的 NDK 堆栈、从路由表中获取正确的网关地址时遇到问题。
当我检查这些标志时、 FLG_RTE_GATEWAY 永远不会置1。 如果我忽略标志测试并仅循环、
我从以下代码中获得两个 IP 地址、即当前 IP 地址、以及一个看起来像主机地址但以零点结尾的 IP 地址。
是否有任何想法或是否有更好的方法来获取网关?
//从路由表获取网关
void * HRT = 0;
uint32_t wFlags = 0;
ACTIVE_GATEWAY = 0;
llEnter ();
HRT = RtWalkBegin ();
while (HRT)
{
wFlags = RtGetFlags (HRT);
IF (wFlags & FLG_RTE_GATEWAY)
{
ACTIVE_GATEWAY = RtGetGateIP (HRT);
}
HRT = RtWalkNext (HRT);
}
llExit ();
trace_printf ("Active_gateway:%s\r\n、Network_IP_TO_string (Active_gateway));
感谢您的帮助!