繁体   English   中英

在 mysql 中检索客户端 ip 地址

[英]Retrieve client ip address in mysql

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

SELECT USER();

我明白了

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

当我使用

SELECT CURRENT_USER();

我明白了

dbouser@%

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

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

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

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

仅获取不带端口号的 IP 地址。

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

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

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

SELECT SUBSTRING_INDEX(USER(), '@', -1) AS ip;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM