Pomocí sys_context funkce můžeme získat název hostitele a IP adresu aktuální relace SQL> vyberte sys_context('userenv', 'host') z dual; SYS_CONTEXT('USERENV', 'HOST') -------------------------------------------------------------- PRACOVNÍ SKUPINA\IBM-L3YMBNP SQL> vyberte sys_context('userenv','ip_address') z dual; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Do sys_context můžeme získat jen informace o aktuální relaci, co když chceme získat další sezení? V tuto chvíli používáme utl_inaddr batoh, abychom ho získali SQL> vyberte utl_inaddr.get_host_address('IBM-L3YMBNP') z dual; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 A také můžeme získat IP adresy pro SINA a další webové stránky SQL> vyberte utl_inaddr.get_host_address('www.sina.com.cn') z dual; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Principem je nejprve získat server pro řešení doménových jmen (resolv.conf) a poté určit pořadí rozlišení na základě souboru host.conf, protože výchozí je prioritizovat rozlišení souboru hosts a poté pokračovat ve čtení souboru /etc/hosts. Pokud má hostitelský soubor parsovací vztah, vrací informace; Pokud neexistuje, pokračujte v žádosti DNS serveru o získání adresy rozlišení, a pokud ne, dojde k chybě SQL> vyberte utl_inaddr.get_host_address('www.a.com') z dual; Vyberte utl_inaddr.get_host_address('www.a.com') z dual * ERROR je na řádku 1:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 To je v podstatě všechno. |