Dengan menggunakan fungsi sys_context kita bisa mendapatkan nama host dan alamat IP dari sesi saat ini SQL> pilih sys_context('userenv','host') dari dual; SYS_CONTEXT('USERENV','TUAN RUMAH') -------------------------------------------------------------- KELOMPOK KERJA\IBM-L3YMBNP SQL> pilih sys_context('userenv','ip_address') dari dual; SYS_CONTEXT('USERENV','IP_ADDRESS') -----------------------------------------------------------
127.0.0.1 Dengan sys_context kita hanya bisa mendapatkan informasi sesi saat ini, bagaimana jika kita ingin mendapatkan sesi lain? Saat ini, kami menggunakan paket utl_inaddr untuk mendapatkannya SQL> pilih utl_inaddr.get_host_address('IBM-L3YMBNP') dari dual; UTL_INADDR. GET_HOST_ADDRESS('IBM-L3YMBNP') -------------------------------------------------------------------
9.181.142.152 Dan kita juga bisa mendapatkan IP untuk SINA dan situs web lainnya SQL> pilih utl_inaddr.get_host_address('www.sina.com.cn') dari dual; UTL_INADDR. GET_HOST_ADDRESS('WWW. SINA.COM. CN') ---------------------------------------------------------------------
218.30.108.55 Prinsipnya adalah pertama-tama mendapatkan server resolusi nama domain (resolv.conf), dan kemudian menentukan urutan resolusi berdasarkan file host.conf, karena defaultnya adalah memprioritaskan resolusi file host, dan kemudian melanjutkan membaca file /etc/hosts. Jika file host memiliki hubungan penguraian, file tersebut mengembalikan informasi; Jika tidak ada, maka lanjutkan meminta server DNS untuk mendapatkan alamat resolusi, dan jika tidak bisa, akan terjadi kesalahan SQL> pilih utl_inaddr.get_host_address('www.a.com') dari dual; Pilih utl_inaddr.get_host_address('www.a.com') dari dual * ERROR ada di baris 1:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1 Itu pada dasarnya. |