Използвайки sys_context функция, можем да получим хост име и IP адрес на текущата сесия SQL> избира sys_context('userenv','host') от dual; SYS_CONTEXT('USERENV','HOST') -------------------------------------------------------------- РАБОТНА ГРУПА\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') от dual; 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, защото по подразбиране е да се приоритизира резолюцията на файла на хоста, а след това да се продължи да се чете файлът /etc/hosts. Ако файлът на хоста има парсингова връзка, той връща информация; Ако не съществува, продължавай да искаш DNS сървъра да получи адреса за резолюция, и ако не може, ще възникне грешка SQL> изберете utl_inaddr.get_host_address('www.a.com') от dual; Изберете utl_inaddr.get_host_address('www.a.com') от Dual * ГРЕШКА е на ред 1:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 Това е горе-долу всичко. |