Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“程序性变更”;“高级TCP/IP设置”“取消检查”;在远程网络上使用默认网关方式”;_C_Windows_Winapi_Tcp_Network Programming - Fatal编程技术网

“程序性变更”;“高级TCP/IP设置”“取消检查”;在远程网络上使用默认网关方式”;

“程序性变更”;“高级TCP/IP设置”“取消检查”;在远程网络上使用默认网关方式”;,c,windows,winapi,tcp,network-programming,C,Windows,Winapi,Tcp,Network Programming,说明: 我通过编程创建了一个拨号连接,以便与我的设备和笔记本电脑通信。一旦建立了拨号连接,通过LAN连接的internet连接将不起作用,并且LAN连接(用于internet连接)的状态保持连接 为了解决这个问题,我需要取消选中“在远程网络上使用默认网关方式”选项,右键单击我的拨号连接->属性->联网选项卡->选择Internet协议(TCP/IP)->属性->高级->我获得高级TCP/IP设置->取消选中“在远程网络上使用默认网关方式”。 我正在使用RAS函数为拨号连接创建电话簿。是否有任何结

说明:

我通过编程创建了一个拨号连接,以便与我的设备和笔记本电脑通信。一旦建立了拨号连接,通过LAN连接的internet连接将不起作用,并且LAN连接(用于internet连接)的状态保持连接

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

我正在使用RAS函数为拨号连接创建电话簿。是否有任何结构可供选择。我没有找到任何结构参数使其成为一个选项。请给我一些建议


如何以程序化的方式实现这一点?我可以使用任何API。

我还没有测试来验证它,但我猜这对应于结构的
ForwardingEnabled
元素。如果是这样,您可以使用更改它


您通常希望调用以获取每个接口的当前信息,然后修改
ForwardingEnabled
成员以获得正确的接口,然后使用修改后的
MIB\u iInterface\u行调用
SetIpInterfaceEntry
,我将赌注押在AdvertiseDefaultRoute和DisableDefaultRoutes标志上。使用默认网关选项只需覆盖当前网关并更改默认路由(在连接前后检查
路由打印)。

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

可以使用
RASENTRY
structure
dwoptions
member取消设置此标志

来自Microsoft SDK的内容:

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

感谢您的回答,如何检查“这对应于MIB_I接口_行结构的ForwardingEnabled元素”?我将研究一下您所说的内容,但是,我仍然不能使用RAS函数使此选项成为可选项吗?您是否签出了
路由添加
命令?它可用于通过网关ip向ip地址添加静态路由。