Izmantojot sys_context funkciju, mēs varam iegūt pašreizējās sesijas resursdatora nosaukumu un IP adresi SQL> izvēlieties sys_context('userenv','host') no duāla; SYS_CONTEXT('USERENV','HOST') -------------------------------------------------------------- DARBGRUPA\IBM-L3YMBNP SQL> izvēlieties sys_context('userenv','ip_address') no duāla; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Līdz sys_context mēs varam iegūt tikai informāciju par pašreizējo sesiju, ko darīt, ja mēs vēlamies iegūt citas sesijas? Šobrīd mēs izmantojam utl_inaddr iepakojumu, lai to iegūtu SQL> atlasiet utl_inaddr.get_host_address('IBM-L3YMBNP') no duāla; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 Un mēs varam arī iegūt IP SINA un citām tīmekļa vietnēm SQL> atlasiet utl_inaddr.get_host_address('www.sina.com.cn') no duāla; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. KN') ---------------------------------------------------------------------
218.30.108.55 Princips ir vispirms iegūt domēna nosaukuma izšķirtspējas serveri (resolv.conf) un pēc tam noteikt izšķirtspējas secību, pamatojoties uz host.conf failu, jo noklusējums ir noteikt prioritāti resursdatora faila izšķirtspējai un pēc tam turpināt lasīt /etc/hosts failu. Ja resursdatora failam ir parsēšanas relācija, tas atgriež informāciju; Ja tā nepastāv, turpiniet lūgt DNS serverim iegūt izšķirtspējas adresi, un, ja tas nevar, radīsies kļūda SQL> atlasiet utl_inaddr.get_host_address('www.a.com') no duāla; atlasiet utl_inaddr.get_host_address('www.a.com') no diviem * KĻŪDA ir 1. rindā:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 Tas būtībā ir viss. |