Використовуючи sys_context функцію, ми можемо отримати ім'я хоста та IP-адресу поточної сесії SQL> вибрати sys_context('userenv,'host') з дуал; SYS_CONTEXT('USERENV','HOST') -------------------------------------------------------------- WORKGROUP\IBM-L3YMBNP SQL> вибрати sys_context('userenv','ip_address') з дуал; 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') з дуал; 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') з dual; Виберіть 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 Ось і все. |