如何从Cx_Oracle中的Connection对象获取IP

时间:2019-03-21 06:39:03

标签: oracle connection cx-oracle

在cx_Oracle中,我使用tnsnames.ora获得了Connection对象

示例:

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

我正在尝试从连接对象(= conn)获取IP,但是我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

实际上是不可能的。甚至OCI也不支持它。 OCI中有一个技巧可以将OCI Connection结构转换为旧的Oracle7连接上下文,并且此结构包含TCP套接字到数据库的“文件句柄”号。从该文件/套接字描述符中,您可以获得IP。

如果使用tnsnames.ora,则可以轻松解析它。但是,在Oracle RAC的情况下,您首先连接了SCAN列表器,此列表将仅向您发送重定向数据包到某个群集节点。根据从SCAN侦听器收到的信息,关闭与扫描侦听器的TCP连接并打开新的TCP连接。