0

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

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

提前致谢!

4

2 回答 2

1

您可以尝试从 sys_context 获取 IP:

SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM dual;
于 2012-08-20T14:05:26.577 回答
0

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

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

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

为什么需要这些信息?

于 2012-08-20T14:01:58.353 回答