Met sys_context functie kunnen we de hostnaam en het IP-adres van de huidige sessie verkrijgen SQL> selecteer sys_context('userenv', 'host') uit dual; SYS_CONTEXT('USERENV', 'HOST') -------------------------------------------------------------- WERKGROEP\IBM-L3YMBNP SQL> selecteer sys_context('userenv','ip_address') uit dual; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Met sys_context we alleen de informatie van de huidige sessie kunnen krijgen, wat als we andere sessies willen krijgen? Op dit moment gebruiken we utl_inaddr pak om het te krijgen SQL> selecteer utl_inaddr.get_host_address('IBM-L3YMBNP') uit dual; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 En we kunnen ook IP's krijgen van SINA en andere websites SQL> selecteer utl_inaddr.get_host_address('www.sina.com.cn') uit dual; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Het principe is om eerst de domeinnaamresolutieserver (resolv.conf) te verkrijgen en vervolgens de resolutievolgorde te bepalen op basis van het host.conf-bestand, omdat de standaard is om de resolutie van het hostsbestand te prioriteren en vervolgens het /etc/hosts-bestand te blijven lezen. Als het hostsbestand een parsingrelatie heeft, geeft het informatie terug; Als het niet bestaat, blijf dan de DNS-server vragen om het resolutieadres, en als dat niet lukt, zal er een fout optreden SQL> selecteer utl_inaddr.get_host_address('www.a.com') uit dual; selecteer utl_inaddr.get_host_address('www.a.com') uit dual * ERROR staat op regel 1:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 Dat is het eigenlijk. |