Python не может определить, как подключиться к IP-адресам, находящимся в домене операционной системы, на более низком уровне, чем заботит Python. Вы должны убедить свою ОС сделать это. Обратите внимание, что из-за этого метод обязательно зависит от ОС c, поэтому в этом ответе ничего не будет работать ни с чем, кроме Ma c OS X.
Я не на 100% конечно, но я думаю, что вы можете сделать это так, чтобы ОС автоматически справлялась с ситуацией. Попробуйте это:
- Узнайте IP-адрес вашей базы данных (например, 192.168.1.1)
Узнайте, как называется соединение (вероятно, Wi-Fi):
networksetup -listallnetworkservices
Найдите шлюз, который ведет вас туда (например, 192.168.1.254) и его маску su bnet (например, 255.255.255.0):
networksetup -getinfo Wi-Fi
Настройте маршрут так, чтобы ваша ОС Ma c знала, как использовать этот шлюз для этого адреса. Это материал уровня ядра, поэтому вам нужен доступ суперпользователя:
sudo networksetup -setadditionalroutes Wi-Fi 192.168.1.1 255.255.255.0 192.168.1.254
Если я прав, вы можете теперь просматривать веб-страницы, используя обычное соединение, и использовать ethe rnet Wi-Fi для автоматического подключения к вашей базе данных, без необходимости что-либо делать дальше.
Еще один способ сделать это, ближе к тому, что вы просили, - это создать два разных местоположения , с разным сервисным заказом; затем вы можете переключаться между ними программно, используя
networksetup -switchtolocation MyLovelyDatabase
. Вы можете вернуться к настройкам по умолчанию, используя
networksetup -switchtolocation Automatic
Вы можете сделать этот метод из Python, используя subprocess
.