Ved at bruge sys_context funktion kan vi få værtsnavnet og IP-adressen på den aktuelle session SQL> vælg sys_context('userenv', 'host') fra dual; SYS_CONTEXT('USERENV', 'VÆRT') -------------------------------------------------------------- ARBEJDSGRUPPE\IBM-L3YMBNP SQL> vælg sys_context('userenv','ip_address') fra dual; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Ved sys_context kan vi kun få informationen om den aktuelle session, hvad hvis vi vil have andre sessioner? På nuværende tidspunkt bruger vi utl_inaddr pakke til at hente det SQL> vælg utl_inaddr.get_host_address('IBM-L3YMBNP') fra dual; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 Og vi kan også få IP-adresser til SINA og andre hjemmesider SQL> vælg utl_inaddr.get_host_address('www.sina.com.cn') fra dual; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Princippet er først at hente domænenavnsopløsningsserveren (resolv.conf) og derefter bestemme opløsningsrækkefølgen baseret på host.conf-filen, fordi standarden er at prioritere opløsningen af hosts-filen og derefter fortsætte med at læse /etc/hosts-filen. Hvis værtens fil har en parsing-relation, returnerer den information; Hvis den ikke findes, så fortsæt med at bede DNS-serveren om at hente opløsningsadressen, og hvis den ikke kan, vil der opstå en fejl SQL> vælg utl_inaddr.get_host_address('www.a.com') fra dual; Vælg utl_inaddr.get_host_address('www.a.com') fra dual * FEJL er på linje 1:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 Det er stort set det. |