Korzystając z sys_context funkcji, możemy uzyskać nazwę hosta i adres IP bieżącej sesji SQL> wybierz sys_context('userenv', 'host') z dual; SYS_CONTEXT('USERENV', 'HOST') -------------------------------------------------------------- GRUPA ROBOCZA\IBM-L3YMBNP SQL> wybierz sys_context('userenv','ip_address') z dual; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Do sys_context możemy uzyskać tylko informacje z bieżącej sesji, a co jeśli chcemy mieć kolejne sesje? Obecnie używamy utl_inaddr plecaka, żeby go zdobyć SQL> wybierz utl_inaddr.get_host_address('IBM-L3YMBNP') z dual; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 Możemy też uzyskać adresy IP dla SINA i innych stron internetowych SQL> wybierz utl_inaddr.get_host_address('www.sina.com.cn') z dual; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Zasada polega najpierw na uzyskaniu serwera rozwiązywania nazw domen (resolv.conf), a następnie ustaleniu kolejności rozwiązywania na podstawie pliku host.conf, ponieważ domyślnie priorytetem jest priorytetyzacja rozwiązywania pliku hosta, a następnie kontynuowanie czytania pliku /etc/hosts. Jeśli plik hosta ma relację parsowania, zwraca informacje; Jeśli nie istnieje, nadal poproś serwer DNS o adres rozdzielenia, a jeśli nie może, pojawi się błąd SQL> wybierz utl_inaddr.get_host_address('www.a.com') z dual; Wybierz utl_inaddr.get_host_address('www.a.com') z dual * ERROR jest na linii 1:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 To właściwie wszystko. |