您好,登錄后才能下訂單哦!
這篇文章給大家介紹Oracle中怎么獲取主機名和IP地址,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
利用sys_context函數我們可以獲得當前session的hostname和ip address
SQL> select sys_context('userenv','host') from dual;
SYS_CONTEXT('USERENV','HOST')
--------------------------------------------------------------
WORKGROUP\IBM-L3YMBNP
SQL> select sys_context('userenv','ip_address') from dual;
SYS_CONTEXT('USERENV','IP_ADDRESS')
-----------------------------------------------------------
127.0.0.1
通過sys_context我們只能獲得當前session的信息,如果要獲得其他session呢?
這個時候我們就用utl_inaddr包來獲取
SQL> select utl_inaddr.get_host_address('IBM-L3YMBNP') from dual;
UTL_INADDR.GET_HOST_ADDRESS('IBM-L3YMBNP')
-------------------------------------------------------------------
9.181.142.152
而且我們還可以獲得sina以及其他web site的ip
SQL> select utl_inaddr.get_host_address('www.sina.com.cn') from dual;
UTL_INADDR.GET_HOST_ADDRESS('WWW.SINA.COM.CN')
---------------------------------------------------------------------
218.30.108.55
其原理是:首先獲取域名解析服務器(resolv.conf),在根據host.conf文件確定解析順序,因為缺省的是hosts文件優先解析,這個時候會又繼續讀取/etc/hosts文件。
如果hosts文件存在解析關系,則返回信息;如果不存在,則繼續問詢DNS服務器,獲得解析地址,如果不能解析,則會出錯
SQL> select utl_inaddr.get_host_address('www.a.com') from dual;
select utl_inaddr.get_host_address('www.a.com') from dual
*
ERROR 位于第 1 行:
ORA-29257: 未知的主機 www.a.com
ORA-06512: 在"SYS.UTL_INADDR", line 35
ORA-06512: 在"SYS.UTL_INADDR", line 40
ORA-06512: 在line 1
關于Oracle中怎么獲取主機名和IP地址就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。