zoukankan      html  css  js  c++  java
  • Identifying Host Names and IP Addresses

    Identifying Host Names and IP Addresses

    This article presents a mixed bag of Oracle functionality relating to the identification of host names and IP addresses for Oracle clients and servers.

    UTL_INADDR

    The UTL_INADDR package was introduced in Oracle 8.1.6 to provide a means of retrieving host names and IP addresses of remote hosts from PL/SQL.

    The GET_HOST_ADDRESS function returns the IP address of the specified host name.

    SQL> SELECT UTL_INADDR.get_host_address('bart') FROM dual;
    
    UTL_INADDR.GET_HOST_ADDRESS('BART')
    --------------------------------------------------------------------------------
    192.168.2.4
    
    SQL>

    The IP address of the database server is returned if the specified host name is NULL or is omitted.

    SQL> SELECT UTL_INADDR.get_host_address from dual;
    
    GET_HOST_ADDRESS
    --------------------------------------------------------------------------------
    192.168.2.5
    
    SQL>

    An error is returned if the specified host name is not recognized.

    SQL> SELECT UTL_INADDR.get_host_address('banana') from dual;
    SELECT UTL_INADDR.get_host_address('banana') from dual
           *
    ERROR at line 1:
    ORA-29257: host banana unknown
    ORA-06512: at "SYS.UTL_INADDR", line 19
    ORA-06512: at "SYS.UTL_INADDR", line 40
    ORA-06512: at line 1
    
    
    SQL>

    The GET_HOST_NAME function returns the host name of the specified IP address.

    SQL> SELECT UTL_INADDR.get_host_name('192.168.2.4') FROM dual;
    
    UTL_INADDR.GET_HOST_NAME('192.168.2.4')
    --------------------------------------------------------------------------------
    bart
    
    SQL>

    The host name of the database server is returned if the specified IP address is NULL or omitted.

    SQL> SELECT UTL_INADDR.get_host_name FROM dual;
    
    GET_HOST_NAME
    --------------------------------------------------------------------------------
    C4210gR2
    
    1 row selected.
    
    SQL>

    An error is returned if the specified IP address is not recognized.

    SQL> SELECT UTL_INADDR.get_host_name('1.1.1.1') FROM dual;
    SELECT UTL_INADDR.get_host_name('1.1.1.1') FROM dual
           *
    ERROR at line 1:
    ORA-29257: host 1.1.1.1 unknown
    ORA-06512: at "SYS.UTL_INADDR", line 4
    ORA-06512: at "SYS.UTL_INADDR", line 35
    ORA-06512: at line 1
    
    
    SQL>

    SYS_CONTEXT

    The SYS_CONTEXT function is able to return the following host and IP address information for the current session:

    • TERMINAL - An operating system identifier for the current session. This is often the client machine name.
    • HOST - The host name of the client machine.
    • IP_ADDRESS - The IP address of the client machine.
    • SERVER_HOST - The host name of the server running the database instance.

    The following examples show the typical output for each variant.

    SQL> SELECT SYS_CONTEXT('USERENV','TERMINAL') FROM dual;
    
    SYS_CONTEXT('USERENV','TERMINAL')
    --------------------------------------------------------------------
    marge
    
    1 row selected.
    
    SQL> SELECT SYS_CONTEXT('USERENV','HOST') FROM dual;
    
    SYS_CONTEXT('USERENV','HOST')
    --------------------------------------------------------------------
    marge
    
    1 row selected.
    
    SQL> SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM dual;
    
    SYS_CONTEXT('USERENV','IP_ADDRESS')
    --------------------------------------------------------------------
    192.168.2.3
    
    1 row selected.
    
    SQL> SELECT SYS_CONTEXT('USERENV','SERVER_HOST') FROM dual;
    
    SYS_CONTEXT('USERENV','SERVER_HOST')
    --------------------------------------------------------------------
    C4210gr2
    
    1 row selected.
    
    SQL>

    V$INSTANCE

    The HOST_NAME column of the V$INSTANCE view contains the host name of the server running the instance.

    SQL> SELECT host_name FROM v$instance;
    
    HOST_NAME
    ------------------------------------------------
    C4210gR2
    
    1 row selected.
    
    SQL>

    V$SESSION

    The V$SESSION view contains the following host information for all database sessions:

    • TERMINAL - The operating system terminal name for the client. This is often set to the client machine name.
    • MACHINE - The operating system name for the client machine. This may include the domain name if present.

    The following examples show the typical output for each column.

    SQL> SELECT terminal, machine FROM v$session WHERE username = 'TIM_HALL';
    
    TERMINAL                       MACHINE
    ------------------------------ ----------------------------------------------------
    MARGE                          ORACLE-BASE\MARGE
    
    1 row selected.
    
    SQL>

    For more information see:

  • 相关阅读:
    地三鲜
    在linux下使用am335x的DMA
    通过tarball形式安装HBASE Cluster(CDH5.0.2)——集群安装总览
    通过tarball形式安装HBASE Cluster(CDH5.0.2)——如何配置分布式集群中的zookeeper
    如何通过SSH及其Client 批量分发文件和执行管理命令
    解决ESXi有虚拟机模版部署的CentOS虚拟机,网卡eth0找不到问题
    CentOS 65 安装vmware tools 杂记
    安装vmware vCenter Appliance
    使用FileZilla解决从Windows上传文件到Linux vsftpd的乱码问题!
    不关闭seLinux解决vsftpd服务本地用户不能登录问题(500 OOPS: cannot change directory:/home/***)
  • 原文地址:https://www.cnblogs.com/weaver1/p/2347773.html
Copyright © 2011-2022 走看看