以编程方式更改“高级TCP/IP设置” - 取消选中“在远程网络上使用默认网关”。

4

输入图像描述

描述:

我通过编程方式创建了一个拨号连接,以与我的设备和笔记本电脑进行通信。一旦建立了与创建的拨号连接的连接,我的通过局域网连接的互联网连接将无法正常工作,用于互联网连接的局域网连接的状态保持连接。

为了解决这个问题,我需要取消选中“使用远程网络上的默认网关”选项,方法是:右键单击我的拨号连接 -> 属性 -> 网络选项卡 -> 选择Internet协议(TCP/IP) -> 属性 -> 高级 -> 获取高级TCP/IP设置 -> 取消选中“使用远程网络上的默认网关”。

我正在使用RAS函数为我的拨号连接创建电话簿。是否有可用于将此作为选项的结构?我没有找到任何结构参数来使其成为选项。请给出建议。

如何以编程方式完成这个任务?我可以使用任何API吗?


1
你有查看过 route add 命令吗?它可以用来通过网关 IP 添加静态路由到 IP 地址。 - Prasanth
3个回答

3
我没有进行测试以验证它,但我猜这对应于MIB_IPINTERFACE_ROW结构的ForwardingEnabled元素。如果是这样,您可以使用SetIpInterfaceEntry进行更改。
通常,您需要调用GetIpInterfaceTable获取每个接口的当前信息,然后修改正确接口的ForwardingEnabled成员,最后使用修改后的MIB_IPINTERFACE_ROW调用SetIpInterfaceEntry

谢谢您的回答,如何检查“这对应于MIB_IPINTERFACE_ROW结构的ForwardingEnabled元素”? - 2vision2
我会研究一下您所说的内容,但是我能不能使用RAS函数来实现这个选项呢? - 2vision2

1

在创建电话簿时取消设置RASEO_RemoteDefaultGateway标志将禁用此选项。

可以使用RASENTRY结构的dwoptions成员取消设置此标志。

来自Microsoft SDK的内容:

RASEO_RemoteDefaultGateway - 如果设置了此标志,则IP数据包的默认路由是通过拨号适配器进行活动连接。如果清除此标志,则不修改默认路由。此标志对应于TCP/IP设置对话框中的“在远程网络上使用默认网关”复选框。


0

我会把赌注放在AdvertiseDefaultRouteDisableDefaultRoutes标志上。 使用默认网关选项只是覆盖当前网关并更改默认路由(在连接之前和之后检查route print)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接