sys_context funktsiooni abil saame saada praeguse sessiooni hostinime ja IP-aadressi SQL> vali dualilt sys_context('userenv','host'); SYS_CONTEXT('USERENV','HOST') -------------------------------------------------------------- TÖÖRÜHM\IBM-L3YMBNP SQL> vali sys_context('userenv','ip_address') dualitest; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 sys_context saame ainult praeguse sessiooni infot, mis siis, kui tahame saada teisi sessioone? Praegu kasutame utl_inaddr pakki, et seda saada SQL> vali utl_inaddr.get_host_address('IBM-L3YMBNP') dual'ist; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 Samuti saame IP-aadresse SINA ja teiste veebisaitide jaoks SQL> vali utl_inaddr.get_host_address('www.sina.com.cn') dual'ist; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Põhimõte on esmalt hankida domeeninime lahendusserver (resolv.conf) ja seejärel määrata resolutsiooni järjekord host.conf faili põhjal, sest vaikimisi on prioriseerida hostifaili resolutsioon ja seejärel jätkata /etc/hosts faili lugemist. Kui hosti failil on parsimissuhe, tagastab see infot; Kui seda pole, siis küsi DNS-serverilt lahendusaadressi, ja kui ei saa, tekib viga SQL> vali utl_inaddr.get_host_address('www.a.com') dual'ist; vali utl_inaddr.get_host_address('www.a.com') dualist * ERROR on esimesel real:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 See ongi põhimõtteliselt kõik. |