在mysql中检索客户端IP地址

DaJ*_*kie 21 mysql sql

我试图用一个简单的SQL语句来获取客户端的IP地址.我不想使用PHP或其他技术.只有纯SQL.我用的时候

SELECT USER();
Run Code Online (Sandbox Code Playgroud)

我明白了

dbouser@host.i.do.not.care.of
Run Code Online (Sandbox Code Playgroud)

我用的时候

SELECT CURRENT_USER();
Run Code Online (Sandbox Code Playgroud)

我明白了

dbouser@%
Run Code Online (Sandbox Code Playgroud)

但是我如何获得普通IP?非常感谢提前.

Mar*_*rkR 40

您将只获得与MySQL通信的客户端进程的IP地址.假设这是你想要的:

select host from information_schema.processlist WHERE ID=connection_id();
Run Code Online (Sandbox Code Playgroud)

将为您提供连接到当前连接上的mysql服务器的主机名(或IP地址,如果未启用名称解析,通常不会).


Ali*_*Ali 7

仅在没有端口号的情况下获取IP地址.

select SUBSTRING_INDEX(host,':',1) as 'ip' from information_schema.processlist WHERE ID=connection_id();


小智 5

@mvf - 你可以这样做而不是反向:

SELECT SUBSTRING_INDEX(USER(), '@', -1) AS ip;
Run Code Online (Sandbox Code Playgroud)