[英]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.