Используя sys_context функцию, мы можем получить имя хоста и IP-адрес текущей сессии SQL> выбрать sys_context('userenv','host') из двойки; SYS_CONTEXT('USERENV','HOST') -------------------------------------------------------------- WORKGROUP\IBM-L3YMBNP SQL> выбрать sys_context('userenv','ip_address') из dual; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 К sys_context мы можем получить только информацию о текущей сессии, а что если мы захотим получить другие сессии? Сейчас мы используем utl_inaddr рюкзаке, чтобы получить его SQL> выбрать utl_inaddr.get_host_address('IBM-L3YMBNP') из двойного варианта; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 Кроме того, мы можем получить IP для SINA и других веб-сайтов SQL> выберите utl_inaddr.get_host_address('www.sina.com.cn') из dual; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Принцип заключается в том, чтобы сначала получить сервер разрешения доменных имён (resolv.conf), а затем определить порядок разрешения на основе файла host.conf, поскольку по умолчанию приоритет отдаётся разрешению файла hosts, а затем продолжается чтение файла /etc/hosts. Если у файла хоста есть отношения парса, он возвращает информацию; Если его нет, продолжайте просить DNS-сервер получить адрес разрешения, и если не получится, возникнет ошибка SQL> выберите utl_inaddr.get_host_address('www.a.com') из двойки; Выберите utl_inaddr.get_host_address('www.a.com') из Dual * ОШИБКА на первой строке:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 Вот и всё. |