首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取Oracle数据库IP?

如何获取Oracle数据库IP?
EN

Stack Overflow用户
提问于 2014-03-10 19:07:43
回答 2查看 21K关注 0票数 6

如何获取Oracle数据库的IP地址?我不是管理员。

我使用的是一个有权访问该数据库的Oracle应用程序。如何获取数据库的IP地址?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-10 19:12:08

从SQL* (Requires specific access rights to the network related functions,因此您作为非管理员可能无法使用它)执行以下操作:

代码语言:javascript
复制
SQL>  connect / as sysdba;
Connected.
SQL> SELECT UTL_INADDR.get_host_address from dual;

GET_HOST_ADDRESS
--------------------------------------------------------------------------------
192.168.1.42

另请参阅UTL_INADDR documentation

shell中的(如果您使用the名称解析数据库名称):

代码语言:javascript
复制
$ tnsping InstanceID
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host.dbserver.com)(PORT=1521)) (CONNECT_DATA= (SID=ORCL)))
                                                                 ^^^^^^^^^^^^^^^^^

注意HOST输出-这是数据库服务器的主机名。

如果您的应用程序使用JDBC访问数据库,则主机名已经是JDBC连接字符串的一部分。

代码语言:javascript
复制
jdbc:oracle:thin:@host.dbserver.com:1521:ORCL
                  ^^^^^^^^^^^^^^^^^

在这两种情况下,您都可以使用ping获取IP地址:

代码语言:javascript
复制
$ ping host.dbserver.com
PING host.dbserver.com (192.168.1.42) 56(84) bytes of data.
                        ^^^^^^^^^^^^
票数 8
EN

Stack Overflow用户

发布于 2019-01-24 09:59:03

有几种方法。使用sys_context

代码语言:javascript
复制
SELECT sys_context('USERENV','IP_ADDRESS') FROM DUAL;

或使用sys.utl_inaddr

代码语言:javascript
复制
SELECT utl_inaddr.get_host_address FROM DUAL;

或使用PL/SQL的相同命令:

代码语言:javascript
复制
SET serveroutput ON
BEGIN
  dbms_output.put_line(utl_inaddr.get_host_address);
  dbms_output.put_line(sys_context('USERENV','IP_ADDRESS'));
END;
/
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22298460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档