Mit sys_context Funktion können wir den Hostnamen und die IP-Adresse der aktuellen Sitzung erhalten SQL> sys_context('userenv', 'host') aus Dual auswählen; SYS_CONTEXT('USERENV', 'HOST') -------------------------------------------------------------- WORKGROUP\IBM-L3YMBNP SQL> wähle sys_context('userenv', 'ip_address') aus Dual aus; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Mit sys_context können wir nur die Informationen der aktuellen Sitzung erhalten, was, wenn wir andere Sitzungen bekommen wollen? Zu dieser Zeit benutzen wir utl_inaddr Pack, um es zu bekommen SQL> utl_inaddr.get_host_address('IBM-L3YMBNP') aus Dual auswählen; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 Und wir können auch IPs von SINA und anderen Webseiten erhalten SQL> wähle utl_inaddr.get_host_address('www.sina.com.cn') aus Dual aus; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Das Prinzip besteht darin, zunächst den Domain Name Resolution Server (resolv.conf) zu erhalten und dann die Resolution-Reihenfolge basierend auf der host.conf-Datei zu bestimmen, da standardmäßig die Auflösung der hosts-Datei priorisiert wird und anschließend die /etc/hosts-Datei weiter gelesen wird. Wenn die Hosts-Datei eine Parsing-Beziehung hat, gibt sie Informationen zurück; Wenn sie nicht existiert, bitte weiterhin den DNS-Server nach der Auflösungsadresse, und wenn nicht, tritt ein Fehler auf SQL> wähle utl_inaddr.get_host_address('www.a.com') aus Dual aus; Wählen Sie utl_inaddr.get_host_address('www.a.com') aus Dual aus * ERROR befindet sich in Leitung 1:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 Das ist im Grunde alles. |