Используйте python для выбора из нескольких установленных соединений inte rnet на Ma c (Wifi против ethe rnet) - PullRequest
0 голосов
/ 25 февраля 2020

На работе я подключен как к внутренней службе inte rnet (через wifi), так и к кабелю ethe rnet для внешнего доступа к inte rnet. Wi-Fi-соединение является единственным способом подключения к нашим внутренним базам данных или системам, но мне нужен rnet для просмотра rnet. В настоящее время по умолчанию я использую кабель ethe rnet, но когда мне необходимо подключиться к нашим внутренним базам данных, мне необходимо отключить кабель ethe rnet или go в моих настройках, чтобы изменить порядок обслуживания на использовать Wi-Fi (отключение происходит намного быстрее).

Есть ли способ указать в python, чтобы специально использовать Wi-Fi не по умолчанию при подключении к моему sql серверу?

1 Ответ

0 голосов
/ 25 февраля 2020

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.

...