200分求一段设置路由表的代码。解决方案

200分求一段设置路由表的代码。
现在需要一个函数,这个函数就是根据参数传入的IP地址来设置路由表。


  // 比如我现在电脑里面有两个连接,一个是普通的局域网连接,IP地址是 192.168.1.8, 网关是 192.168.1.1。
  // 另外还有一个INTERNET的ADSL拨号连接,IP地址是211.10.0.22, 网关是 211.10.0.1

  // 现在我想设置一个路由表,让访问66.249.89.104这个地址的都从局域网连接去访问。
  // 我需要通过这样调用这个函数来实现: SetRoute("192.168.1.18", "192.168.1.1", "66.249.89.104");

请问在下面这个函数里面应该怎么调用 SetIpForwardEntry 这个API来实现我的目的?
另外,SetRoute这个函数的参数每次传入的值可能都不一样。 也有可能是:
  SetRoute("192.168.0.12", "192.168.0.1", "220.181.8.90");
这样就需要在这个函数里面调用SetIpForwardEntry 之前 计算子网掩码等。。

void SetRoute(const string & LocalIp, const string & GateWay, const string & DestIp)
{

}


请帮忙解决,200分决不食言。

------解决方案--------------------
你这个需求貌似不能用设置路由表目来完成,例如你把默认路由表目给改变了,本来畅通的网络,可能导致所有IP数据报都不能向下一站路由传递,感觉你的这个需求是对特殊目的IP数据报的过滤和转发,有点像实现一个代理服务器。
------解决方案--------------------
这个我直接用 CMD 命令行修改的。不过可以通过程序调用命令行。

添加指定路由。
route add 66.249.89.0 mask 255.255.255.0 192.168.1.1

删除路由 route delete
------解决方案--------------------
先用GetBestRoute()获取某个IP到某个网络的路由表,(随便哪个都行,然后再修改)
然后修改返回的MIB_IPFORWARDROW结构体,再调用SetIpForwardEntry()修改这个路由表。

如果是添加一个路由表,用CreateIpForwardEntry()添加一个新路由表。


------解决方案--------------------
一般是用命令设置