在 Firebird 中获取连接的客户端 IP

Sap*_*rel 1 database firebird

我在服务器上托管了一个 Firebird 数据库。Firebird 可以在表格中显示已连接用户的列表,包括用户名、角色等MON$ATTACHMENTS。但是,我不知道如何获取一个特定客户端的 IP 地址。

例如:如果用户“USER”,来自192.168.1.77,连接在192.168.1.2(服务器)上,我怎样才能192.168.1.77通过 Firebird 查询获得这个地址?

编辑:MON$REMOTE_ADDRESS显示 DHCP 服务器地址,而不是本地客户端地址。

Ren*_*ann 5

Firebird 有一个内部附件表,其中存储了每个当前连接。USER可以像这样查询名为用户的远程地址:

select MON$REMOTE_ADDRESS
  from MON$ATTACHMENTS
  where MON$USER = 'USER'
Run Code Online (Sandbox Code Playgroud)

  • @Saphirel AFAIK 它应该是客户端的地址(在 Firebird 3.0 地址 + 客户端端口) (2认同)
  • 也许客户端和服务器之间有软件,比如 fb 扫描仪。如果 fb 扫描器与服务器位于同一台机器上,firebird 将显示服务器的 IP 地址而不是客户端。 (2认同)
  • 我已经对 Firebird 3.0.0 和 2.5.6 进行了测试,在这两种情况下它都会报告客户端的 IP 地址,所以我想 Arioch'The 和 Ed Mendez 的理论可以适用于您的情况。 (2认同)