如何在 MAC 中以编程方式设置 *** 连接?

Posted

技术标签:

【中文标题】如何在 MAC 中以编程方式设置 *** 连接?【英文标题】:how to set up a *** connection programmatically in MAC? 【发布时间】:2011-10-24 17:38:03 【问题描述】:

搜索了一段时间后,我发现在 mac 中以编程方式建立 *** 连接的唯一最佳来源是在

http://lists.apple.com/archives/Macnetworkprog/2011/May/msg00032.html

但我在第 5 点被击中,而编码中提到了 kSCNetworkProtocolTypePPP 并且没有这样的事情......

有没有人按照上面的链接做的 还是有其他可用的来源...?

【问题讨论】:

@user3883413 的答案是指 GitHub 上的开源命令行工具 -macos*** - 引用自述文件可以:“以编程方式创建 Mac OS ***”。您不能简单地使用它,或者至少根据您的特定需求对其进行分叉和定制吗? 【参考方案1】:

但我在第 5 点被击中,而编码中提到了 kSCNetworkProtocolTypePPP 并且没有这样的事情......

无需获取 PPP 协议,您可以直接将设置应用到您创建的接口。如果你创建了这样的界面:

interface = SCNetworkInterfaceCreateWithInterface(bottomInterface, kSCNetworkInterfaceTypePPP);

您可以使用以下方式直接应用 PPP 选项:

SCNetworkInterfaceSetConfiguration(interface, myOptions)

您必须使用

应用共享密钥
SCNetworkInterfaceSetExtendedConfiguration(interface, CFSTR("IPSec"), myOptions)

如果您想启用“通过 *** 发送所有流量”,您需要先获取 IPv4 协议来应用这些设置:

SCNetworkProtocolRef protocol = SCNetworkServiceCopyProtocol(service, kSCNetworkProtocolTypeIPv4);
SCNetworkProtocolSetConfiguration(protocol, myOptions)

此答案中提到的源代码是从https://github.com/halo/macos***/blob/master/macos***/Classes/***Controller.m 中提取的,您可以在其中找到它的全部内容。

【讨论】:

以上是关于如何在 MAC 中以编程方式设置 *** 连接?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 .NET 类中以编程方式访问服务器级 IIS 连接设置?

如何在 Jenkins/Hudson 中以编程方式设置环境变量?

如何在 Entity Framework 6 中以编程方式创建与 MS SQL 的连接字符串?

当 BLE 在 Swift 中以编程方式连接时,蓝牙设备设置中缺少信息按钮

如何在android中以编程方式关闭3G数据连接?

如何在 Swift 中以编程方式启用/禁用菜单对象