如何获取Oracle数据库的IP地址。 我不是管理员,也不是出于黑客目的。
我正在使用可以访问该数据库的Oracle应用程序。 我怎样才能获得数据库的IP地址?
答案 0 :(得分:3)
来自SQL * Plus (Requires specific access rights to the network related functions,因此作为非管理员可能会或可能不会对您有效):
SQL> connect / as sysdba;
Connected.
SQL> SELECT UTL_INADDR.get_host_address from dual;
GET_HOST_ADDRESS
--------------------------------------------------------------------------------
192.168.1.42
来自shell (如果您使用tnsnames解析数据库名称):
$ tnsping InstanceID
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host.dbserver.com)(PORT=1521)) (CONNECT_DATA= (SID=ORCL)))
^^^^^^^^^^^^^^^^^
请注意HOST
输出 - 这是数据库服务器的主机名。
如果您的应用程序使用JDBC
访问数据库,则主机名已经是 JDBC连接字符串的一部分:
jdbc:oracle:thin:@host.dbserver.com:1521:ORCL
^^^^^^^^^^^^^^^^^
在任何一种情况下,您都可以使用ping
获取IP地址:
$ ping host.dbserver.com
PING host.dbserver.com (192.168.1.42) 56(84) bytes of data.
^^^^^^^^^^^^
答案 1 :(得分:0)
有几种方法。使用sys_context
:
SELECT sys_context('USERENV','IP_ADDRESS') FROM DUAL;
或使用sys.utl_inaddr
:
SELECT utl_inaddr.get_host_address FROM DUAL;
或使用PL / SQL的相同命令:
SET serveroutput ON
BEGIN
dbms_output.put_line(utl_inaddr.get_host_address);
dbms_output.put_line(sys_context('USERENV','IP_ADDRESS'));
END;
/