如何一次性添加/删除多条路由。

believe_me 2012-08-10 11:16:13
我使用route add/del进行路由的添加,尤其需要添加的路由条数较多,耗时比较长。
可不可以用route一次添加或者删除多条路由的,我也试过CreateIpForwordRow函数,但是一直调用成功。
我用如下的方法进行路由添加,添加路由的时候CPU会占用到100%。
环境为WIN7 + VS2008。

while(...)
{
WinExec("route add 1.1.1.1 mask 2.2.2.2 3.3.3.3", SW_HIDE);
Sleep(50);
}
...全文
360 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
believe_me 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

CreateIpForwordRow调用成功?
还是笔误?
[/Quote]
不好意思,是调用不成功。
zwfgdlc 2012-08-10
  • 打赏
  • 举报
回复
CreateIpForwordRow调用成功?
还是笔误?
看不见的裂痕 2012-08-10
  • 打赏
  • 举报
回复
你都已经用了Sleep,CPU还占100%,说明你的工作本来就超载了。

现在不都流行WMI编程么,那个感觉挺不错的。
zwfgdlc 2012-08-10
  • 打赏
  • 举报
回复
XP下测试的.

dwForwardMetric1 这个参数,应该是可以随意的,
据我观察,这个值越小,似乎优先级越高,
比如说同一网络有两个网关时,优先从dwForwardMetric1小的组值转发.
believe_me 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

我在本机测试成功,你自己改下.
C/C++ code

MIB_IPFORWARDROW row = {0};
row.dwForwardDest = inet_addr("0.0.0.0"); //目标网络
row.dwForwardMask = inet_addr("0.0.0.0"); //掩码
row.dwForwardProto = MIB_IPP……
[/Quote]
我看了一下,主要是dwForwardMetric1 这个参数我一直都是指定的1.
但是这个参数不可能每次都通过route print才能得到的啊。需要从代码得到。
believe_me 2012-08-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

我在本机测试成功,你自己改下.
C/C++ code

MIB_IPFORWARDROW row = {0};
row.dwForwardDest = inet_addr("0.0.0.0"); //目标网络
row.dwForwardMask = inet_addr("0.0.0.0"); //掩码
row.dwForwardProto = MIB_IPP……
[/Quote]
是windows 7吗
zwfgdlc 2012-08-10
  • 打赏
  • 举报
回复
我在本机测试成功,你自己改下.

MIB_IPFORWARDROW row = {0};
row.dwForwardDest = inet_addr("0.0.0.0"); //目标网络
row.dwForwardMask = inet_addr("0.0.0.0"); //掩码
row.dwForwardProto = MIB_IPPROTO_NETMGMT;
row.dwForwardType = MIB_IPROUTE_TYPE_DIRECT;
row.dwForwardMetric1 = 20; //route print 里的Metric
row.dwForwardIfIndex = 0x20003; //网卡索引,用GetAdapterIndex()获取,用arp -a,route print可以查看本机网卡的索引
row.dwForwardNextHop = inet_addr("192.168.0.226"); //网关
DWORD dwRet = ::CreateIpForwardEntry(&row);

16,547

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧