Как получить IP из объекта Connection в Cx_Oracle - PullRequest
0 голосов
/ 21 марта 2019

В cx_Oracle я получил объект Connection, используя tnsnames.ora

Пример:

conn = cx_Oracle.connect ('scott', 'tiger', 'DBNAME')

Я пытаюсь получить IP от объекта соединения (= conn), но не могу понять, как это сделать.

1 Ответ

0 голосов
/ 21 марта 2019

Это практически невозможно.Даже OCI не поддерживает это.В OCI была хитрость для преобразования структуры Соединения OCI в старый контекст соединения Oracle7, и эта структура содержит номер «дескриптора файла» для сокета TCP с базой данных.Из этого дескриптора файла / сокета вы можете получить IP.

Если вы используете tnsnames.ora, вы можете легко его проанализировать.Но в случае Oracle RAC вы сначала подключаете SCAN-лист, он отправит вам просто перенаправленный пакет на некоторый узел кластера.TCP-соединение с прослушивателем сканирования закрывается и открывается новое TCP-соединение на основе информации, полученной от прослушивателя SCAN.

...