--要获取服务器端的IP
14:45:34 SYS@XXX> select utl_inaddr.get_host_address from dual; GET_HOST_ADDRESS
--------------------------------------------------
10.19.2.XX --解析域名
14:45:32 SYS@XXX> SELECT UTL_INADDR.get_host_address('www.anysql.net') from dual; UTL_INADDR.GET_HOST_ADDRESS('WWW.ANYSQL.NET')
--------------------------------------------------
173.236.176.151 --根据IP地址反向解析主机名
14:47:14 SYS@XXX> select utl_inaddr.get_host_name('173.236.176.151') from dual; UTL_INADDR.GET_HOST_NAME('173.236.176.151')
--------------------------------------------------
apache2-argon.footprint.dreamhost.com --获取客户端IP
14:48:48 SYS@XXX> select SYS_CONTEXT('USERENV','IP_ADDRESS') ip_address from dual; IP_ADDRESS
--------------------------------------------------
10.19.2.XX --获取客户端主机名
14:48:50 SYS@XXX> select sys_context('userenv','host') from dual; SYS_CONTEXT('USERENV','HOST')
--------------------------------------------------
WORKGROUP\WXX-THINK

UTL_INADDR包获取ip等信息的实现原理:

可参考盖神的文章:http://www.eygle.com/archives/2006/10/how_to_getip_address.html

在Linux可使用strace 命令进行相关命令的跟踪,在跟踪信息中获知

Oracle顺序访问了如下文件来完成地址定位:

open("/etc/resolv.conf", O_RDONLY) =
open("/etc/host.conf", O_RDONLY) =
open("/etc/hosts", O_RDONLY) =

首先获取域名解析服务器,在根据host.conf文件确定解析顺序,因为缺省hosts文件优先,又继续读取/etc/hosts文件。

如果hosts文件存在解析关系,则返回信息;如果不存在,则继续问询DNS服务器,获得解析地址,如果不能解析,则会出错:

14:49:31 SYS@XXX> select UTL_INADDR.get_host_address('www.a.com') from dual;
select UTL_INADDR.get_host_address('www.a.com') from dual
*
第 1 行出现错误:
ORA-29257: 未知的主机 www.a.com
ORA-06512: 在 "SYS.UTL_INADDR", line 19
ORA-06512: 在 "SYS.UTL_INADDR", line 40
ORA-06512: 在 line 1

也就是说,UTL_INADDR的数据获取已经不依赖于数据库信息了,而SYS_CONTEXT的信息获取仍然来自数据库内部。

oracle获取主机服务器IP的更多相关文章

  1. python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客

    python编写的自动获取代理IP列表的爬虫-chinaboywg-ChinaUnix博客 undefined Python多线程抓取代理服务器 | Linux运维笔记 undefined java如 ...

  2. Python 之自动获取公网IP

    Python 之自动获取公网IP 2017年9月30日 文档下载:https://wenku.baidu.com/view/ff40aef7f021dd36a32d7375a417866fb84ac0 ...

  3. Java获取网络IP

    Java获取获取网络IP,浅尝辄止咯- import java.net.InetAddress; import java.net.UnknownHostException; /** * 获取网络IP ...

  4. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  5. 更改oracle RAC public ip,vip,scan ip和private ip

    更改oracle RAC public ip,vip,scan ip和private ip oifcfg - Oracle 接口配置工具 用法:  oifcfg iflist [-p [-n]]    ...

  6. PHP获取客户端IP

    /** * 获取客户端IP */ function getClientIp() { $ip = 'unknown'; $unknown = 'unknown'; if (isset($_SERVER[ ...

  7. 获取 dhcp IP 过程分析 - 每天5分钟玩转 OpenStack(91)

    前面我们已经讨论了 DHCP agent 的配置以及 namespace 如何隔离 dnsmasq 服务,本节将以 cirros-vm1 为例分析获取 DHCP IP 的详细过程. 在创建 insta ...

  8. C#服务器获取客户端IP地址以及归属地探秘

    背景:博主本是一位Windows桌面应用程序开发工程师,对网络通信一知半解.一日老婆逛完某宝,问:"为什么他们知道我的地址呢,他们是怎么获取我的地址的呢?" 顺着这个问题我们的探秘 ...

  9. Linux下的C Socket编程 -- 获取对方IP地址

    Linux下的C Socket编程(二) 获取域名对应的IP地址 经过上面的讨论,如果我们想要连接到远程的服务器,我们需要知道对方的IP地址,系统函数gethostbyname便能够实现这个目的.它能 ...

随机推荐

  1. go学习笔记-结构体

    结构体 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合 定义 格式 type struct_variable_type struct { member definition; member ...

  2. [POJ 1004] Financial Management C++解题

    参考:https://www.cnblogs.com/BTMaster/p/3525008.html #include <iostream> #include <cstdio> ...

  3. python语法图

  4. jsp 添加jstl标签

    jsp页面中添加下列代码即可使用jstl标签. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix=" ...

  5. jmeter4.0☞如何汉化(二)

    如何汉化jmeter打开jmeter,选择options_choose language_Chinese(simplified),如下图: 刚刚下载使用jmeter4.0的时候有点懵圈,英语实在是差劲 ...

  6. mysql 5.7.18 源码安装笔记

    之所以贴出这样一篇笔记呢?主要是因为很久之前,源码安装MySQL的时候,碰到了太多太多的坎坷. 如果你有兴趣进行源码安装,那么请不要以这篇文章为标准,因为每个人的及其环境等其他因素还是差距比较大的. ...

  7. 生产者与消费者-N:1-基于list

    多个生产者/一个消费者: /** * 生产者 */ public class P { private MyStack stack; public P(MyStack stack) { this.sta ...

  8. Linux服务架设篇--traceroute命令

    作用: 查看数据包在传输过程中经过了哪些IP地址的路由器.网关. 工作原理: 首先向远程主机发送TTL为1的UDP数据包,按照协议规定,路由器收到数据包,TTL值减1,这时TTL就为0,路由器就会丢弃 ...

  9. 扩展欧几里得 求ax+by == n的非负整数解个数

    求解形如ax+by == n (a,b已知)的方程的非负整数解个数时,需要用到扩展欧几里得定理,先求出最小的x的值,然后通过处理剩下的区间长度即可得到答案. 放出模板: ll gcd(ll a, ll ...

  10. Week8 Teamework from Z.XML-Z.XML游戏功能说明

    我们小组的游戏终于新鲜出炉了,好开心~ 快来看看有什么功能吧. 游戏目标::=打倒最多的敌人,获得积分,放松心情,获取快乐. 游戏菜单::= 关于+设置+帮助+积分榜+开始游戏吧 (截图还在路上..) ...