Oracle中客户端连接的MAC和IP地址

Posted

技术标签:

【中文标题】Oracle中客户端连接的MAC和IP地址【英文标题】:Client connection's MAC and IP address in Oracle 【发布时间】:2012-08-20 13:44:26 【问题描述】:

在 MS SQL Server 下,您可以使用 ma​​ster.sys.sysprocessesma​​ster.sys.dm_exec_connections 系统视图来检索 MAC 地址和 IP 地址给定 TCP/IP 客户端连接。

有没有办法在 Oracle 数据库中做到这一点?

提前致谢!

【问题讨论】:

在使用 SQL 视图时,我可以看到 IP 地址,但看不到 MAC - 此外,客户端可能位于任意数量的网络硬件后面,因此服务器不太可能知道它们的 MAC 地址反正。您是如何使用这些信息的? @Damien 现在你让我好奇了——你如何从 SQL 视图中获取 IP 地址? @FrankSchmitt - 抱歉,我漏掉了“服务器”这个词 - 我可以在问题中提到的 SQL Server 视图中看到 IP 地址。 【参考方案1】:

你可以尝试从sys_context获取IP:

SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM dual;

【讨论】:

【参考方案2】:

可以通过查询v$session获取客户端的机器名,也可以尝试使用utl_inaddr.get_host_address()获取主机名的IP地址,但是

您必须对来自 v$session 的机器名进行额外处理,因为它并不总是有效的主机名 如果不直接查询操作系统,您将无法获得 MAC 地址

事实上,我很惊讶 SQL 服务器提供了这些信息——我猜它正在后台进行 ARP 查找以获取给定 IP 地址的 MAC 地址。当然,您可以在应用程序代码中模仿这一点。

您为什么需要这些信息?

【讨论】:

以上是关于Oracle中客户端连接的MAC和IP地址的主要内容,如果未能解决你的问题,请参考以下文章

mac远程桌面连接windows 怎么复制文件

华为交换机 端口 邦定 IP与MAC

mac上怎么连接到socket

Delphi中如何用IP地址的方式来连接Oracle数据库?

oracle中TNS错误12535连接超时->求解决方法!

oracle远程连接报ORA-12541:TNS:无监听程序