Ved å bruke sys_context funksjonen kan vi hente vertsnavn og IP-adresse til den nåværende økten SQL> velg sys_context('userenv', 'host') fra dual; SYS_CONTEXT('USERENV', 'VERT') -------------------------------------------------------------- ARBEIDSGRUPPE\IBM-L3YMBNP SQL> velg sys_context('userenv','ip_address') fra dual; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Med sys_context vi bare kan få informasjonen fra den nåværende økten, hva om vi vil ha andre økter? Akkurat nå bruker vi utl_inaddr pakke for å få tak i det SQL> velg 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 for SINA og andre nettsteder SQL> velg utl_inaddr.get_host_address('www.sina.com.cn') fra dual; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Prinsippet er først å hente domenenavn-oppløsningsserveren (resolv.conf), og deretter bestemme oppløsningsrekkefølgen basert på host.conf-filen, fordi standarden er å prioritere oppløsningen av hosts-filen, og deretter fortsette å lese /etc/hosts-filen. Hvis vertsfilen har en parsing-relasjon, returnerer den informasjon; Hvis den ikke finnes, fortsett å be DNS-serveren om å hente oppløsningsadressen, og hvis den ikke kan det, vil en feil oppstå SQL> velg utl_inaddr.get_host_address('www.a.com') fra dual; velg utl_inaddr.get_host_address('www.a.com') fra dual * FEIL 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 sett det. |