我正在尝试编写一个程序,以便随时更改网络的默认网关。但是似乎每个进程中都有路由表缓存,因此我无法精确控制网络行为。我能否只刷新该进程的路由表?
例如,如果我先执行了Iexplore.exe,然后将默认网关更改为韩国VPN,IE仍然会连接到美国默认网关。但是如果我先更改默认网关,然后再执行Iexplore.exe,则它会连接到韩国。
那么,我怎样才能清除路由表缓存呢?谢谢。
以管理员身份从命令提示符中运行:
netsh interface ip delete destinationcache
可在Win7上运行。
使用 route -f 命令会导致损坏。因此,我们需要断开正确的路由表部分,或者找出如何重新构建它。
route print
您可以查看当前的路由表。
您可以通过以下方式进行修改:
route add d.d.d.d mask m.m.m.m g.g.g.g
route delete d.d.d.d mask m.m.m.m g.g.g.g
route change d.d.d.d mask m.m.m.m g.g.g.g
这些看起来是有效的
我运行ping d.d.d.d -t,更改路由,它就会改变。(我的测试涉及到路由到一个无效的路由,ping就停止了)