在mysql中检索客户端IP地址

时间:2011-06-07 09:47:19

标签: mysql sql

我正在尝试使用简单的SQL语句来获取客户端的IP地址。我不想使用PHP或其他技术。只有纯SQL。当我使用

SELECT USER();

我得到了

dbouser@host.i.do.not.care.of

当我使用

SELECT CURRENT_USER();

我得到了

dbouser@%

但是如何获得普通IP呢?非常感谢。

4 个答案:

答案 0 :(得分:37)

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

select host from information_schema.processlist WHERE ID=connection_id();

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

答案 1 :(得分:7)

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

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

答案 2 :(得分:3)

SELECT REVERSE(SUBSTRING_INDEX(REVERSE(USER()),'@',1)) as ip;
SELECT SUBSTRING(USER(), LOCATE('@', USER())+1) as ip;

答案 3 :(得分:1)

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

SELECT SUBSTRING_INDEX(USER(), '@', -1) AS ip;
相关问题