有没有办法以编程方式更改iOS设备上的网络路由?

时间:2015-04-23 21:38:08

标签: ios iphone routing network-programming

场景:我希望iOS设备连接到没有上游Internet连接的LAN,但仍保留并使用其蜂窝数据连接。

理论上,让我感到震惊的是iOS wifi网卡和蜂窝数据网卡与PC中的双网卡相似,我应该可以设置路由,以便任何请求,例如192.168。通过wifi连接,任何其他请求都通过蜂窝数据连接。

当我通过以下步骤将iOS设备连接到wifi时,我做了一个测试,看看两个网卡是否都处于活动状态。

  1. 确保我的iPhone的wifi已关闭且我有一个良好的蜂窝数据连接。
  2. 断开我的wifi路由器以太网线到我的有线调制解调器。
  3. 将我的iPhone连接到wifi路由器。
  4. 使用另一部仅通过手机数据连接的iPhone与朋友一起制作游戏。
  5. 当其他iPhone完成第一步时,我的iPhone收到通知,说有一款新游戏可以播放。
  6. 这确认了蜂窝数据连接确实存在并且足以接收推送通知,尽管无线网卡已连接。

    然后,问题就变成,应用程序可以通过编程方式连接到给定的wifi网络,将蜂窝数据网络设置为默认路由,并将任何请求路由到192.168。通过wifi网络?

1 个答案:

答案 0 :(得分:0)

我知道这篇文章很老,但我碰巧在iOS上使用多个网络接口做了一些工作。

我的实验表明,通过主机名访问会导致iOS选择它想要使用的网络接口,如果无法解析主机,则不会尝试任何其他接口。

如果您知道任何基于以太网/ WiFi的网络的DNS服务器IP地址,您可以自己发送DNS请求,将主机名转换为IP地址并通过IP地址访问。然后iOS将使用正确的界面。

我的猜测是,如果您通过两个连接都可以访问私有类IP地址空间,那么您可能无法指定应该使用哪个网络接口。