使用python从Mac上已建立的多个Internet连接中进行选择(Wifi与以太网)

问题描述 投票:0回答:1

[在工作中,我同时连接到内部互联网服务(通过wifi)和用于外部互联网访问的以太网电缆。 wifi连接是连接到我们内部数据库或系统的唯一方法,但是以太网是我浏览Internet所需要的。当前,默认情况下,我使用以太网电缆,但是当我需要连接到内部数据库时,必须拔下以太网电缆或进入设置以更改服务顺序以专门使用wifi(拔出速度要快得多) 。

在连接到我的sql服务器时,是否有任何方法可以在python中指定专门使用非默认的wifi连接?

python internet-connection
1个回答
0
投票

Python无法确定如何连接到IP(即操作系统域中的IP),其级别比Python所关心的低。您必须说服操作系统来做到这一点。请注意,由于这个原因,该方法必然是特定于OS的,因此此答案在Mac OS X以外的任何其他软件上均不起作用。


我不确定100%,但是我认为您可以做到,这样OS才能自动处理这种情况。试试这个:

  • 知道数据库的IP地址(例如192.168.1.1)
  • 找出连接的名称(可能是Wi-Fi):

    networksetup -listallnetworkservices
    
  • 找到将您带到那里的网关(例如192.168.1.254)及其子网掩码(例如255.255.255.0):

    networksetup -getinfo Wi-Fi
    
  • 设置路由,以便您的Mac OS知道使用该网关作为该地址。这是内核级的内容,因此您需要超级用户访问权限:

    sudo networksetup -setadditionalroutes Wi-Fi 192.168.1.1 255.255.255.0 192.168.1.254
    

[如果我没错,您现在可以使用常规连接浏览网络,并使用ethernet Wi-Fi自动连接到数据库,而无需执行任何其他操作。


更接近您的要求的另一种方法是创建两个具有不同服务顺序的locations;然后您可以使用

以编程方式在它们之间切换
networksetup -switchtolocation MyLovelyDatabase

您可以使用以下方法恢复为默认值

networksetup -switchtolocation Automatic

您可以使用subprocess从Python中执行此方法。

© www.soinside.com 2019 - 2024. All rights reserved.