【问题标题】:Choosing between network (Ethernet or WiFi) programmatically以编程方式在网络(以太网或 WiFi)之间进行选择
【发布时间】:2013-01-29 23:55:12
【问题描述】:

在我的 Mac 上,我有两种可用的网络 - 以太网、WiFi。

在进行服务器调用时,我能否以某种方式控制用于进行服务器调用的网络通道?因此,在进行服务器调用之前,我想指定用于该调用的网络通道 - 以太网或 WiFi。

如何使用目标 C 来实现这一点。我正在开发一个可可应用程序。

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    我假设两个 NIC 都连接到 Internet(所以都有一个 IP):

    我认为您无法在代码中解决它(不是 100% 确定)。但是你可以做的是设置一些本地路由,配置哪些流量通过哪个 NIC。

    查看路由命令('man route')。

    这可能会对您有所帮助:

    https://serverfault.com/questions/100613/public-traffic-to-go-over-1-nic-and-private-traffic-to-use-another-nic

    【讨论】:

      【解决方案2】:

      您可以使用系统配置框架修改可用的路由。在 scutil(8) 中,您可以看到当前安装在 State:/Network/Service/* 字典中的路由,为了以编程方式操作这些路由,您必须使用 SCDynamicStore 框架,即 C。

      但是,如果您只想在 WLAN 上执行一些临时服务,则可以使用 Objective-C 中的 CoreWLAN 框架。

      【讨论】:

      • 感谢您的信息。我已经尝试过 CoreWLAN 框架,并且能够在网络之间切换。它不处理以太网。我想确保我的通话是通过以太网或 WiFi 进行的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-27
      • 2023-04-03
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      相关资源
      最近更新 更多