Pomocou sys_context funkcie môžeme získať názov hostiteľa a IP adresu aktuálnej relácie SQL> vyberte sys_context('userenv', 'host') z dual; SYS_CONTEXT('USERENV', 'HOSTITEĽ') -------------------------------------------------------------- PRACOVNÁ SKUPINA\IBM-L3YMBNP SQL> vyberte sys_context('userenv','ip_address') z dual; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Pri sys_context môžeme získať len informácie z aktuálnej relácie, čo ak chceme získať ďalšie relácie? Momentálne používame utl_inaddr batoh na získanie SQL> vyberte utl_inaddr.get_host_address('IBM-L3YMBNP') z dual; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 A tiež môžeme získať IP adresy pre SINA a iné 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 Princípom je najprv získať server na riešenie doménových mien (resolv.conf) a potom určiť poradie riešenia na základe súboru host.conf, pretože predvolené je uprednostniť rozlíšenie súboru hosts a potom pokračovať v čítaní súboru /etc/hosts. Ak má súbor hostiteľa vzťah na parsovanie, vráti informácie; Ak neexistuje, pokračujte v žiadaní DNS servera o získanie adresy rozlíšenia, a ak to nedokáže, nastane chyba 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 riadku 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 podstate všetko. |