[在工作中,我同时连接到内部互联网服务(通过wifi)和用于外部互联网访问的以太网电缆。 wifi连接是连接到我们内部数据库或系统的唯一方法,但是以太网是我浏览Internet所需要的。当前,默认情况下,我使用以太网电缆,但是当我需要连接到内部数据库时,必须拔下以太网电缆或进入设置以更改服务顺序以专门使用wifi(拔出速度要快得多) 。
在连接到我的sql服务器时,是否有任何方法可以在python中指定专门使用非默认的wifi连接?
Python无法确定如何连接到IP(即操作系统域中的IP),其级别比Python所关心的低。您必须说服操作系统来做到这一点。请注意,由于这个原因,该方法必然是特定于OS的,因此此答案在Mac OS X以外的任何其他软件上均不起作用。
我不确定100%,但是我认为您可以做到,这样OS才能自动处理这种情况。试试这个:
找出连接的名称(可能是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中执行此方法。