Usando sys_context funzione possiamo ottenere il nome host e l'indirizzo IP della sessione corrente SQL> selezionare sys_context('userenv', 'host') da dual; SYS_CONTEXT('USERENV', 'HOST') -------------------------------------------------------------- GRUPPO DI LAVORO\IBM-L3YMBNP SQL> selezionare sys_context('userenv','ip_address') da dual; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Con sys_context possiamo ottenere solo le informazioni della sessione corrente, cosa succede se vogliamo ottenere altre sessioni? Al momento, usiamo utl_inaddr pacchetto per ottenerlo SQL> selezionare utl_inaddr.get_host_address('IBM-L3YMBNP') da dual; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 E possiamo anche ottenere IP per SINA e altri siti web SQL> selezionare utl_inaddr.get_host_address('www.sina.com.cn') da dual; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Il principio è prima ottenere il server di risoluzione dei nomi di dominio (resolv.conf), e poi determinare l'ordine di risoluzione basandosi sul file host.conf, perché il default è dare priorità alla risoluzione del file hosts, e poi continuare a leggere il file /etc/hosts. Se il file hosts ha una relazione di parsing, restituisce informazioni; Se non esiste, continua a chiedere al server DNS di ottenere l'indirizzo della risoluzione e, se non può, si verificherà un errore SQL> selezionare utl_inaddr.get_host_address('www.a.com') da dual; seleziona utl_inaddr.get_host_address('www.a.com') da dual * ERROR è sulla riga 1:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 È praticamente tutto qui. |