在mysql中检索客户端ip地址

nlejzf6q  于 2023-05-21  发布在  Mysql
关注(0)|答案(5)|浏览(157)

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

SELECT USER();

我明白

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

当我使用

SELECT CURRENT_USER();

我明白

dbouser@%

但是我如何获得普通IP?先谢谢你。

xoshrz7s

xoshrz7s1#

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

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

将给予你当前连接上连接到mysql服务器的主机名(如果没有启用名称解析,则为IP地址,通常不会启用)。

ars1skjm

ars1skjm2#

仅获取IP地址而不获取端口号。
select SUBSTRING_INDEX(host,':',1) as 'ip' from information_schema.processlist WHERE ID=connection_id();

pgky5nke

pgky5nke3#

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

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

wlzqhblo4#

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

4si2a6ki5#

可以使用它从客户端获取IP地址,然后将其插入表$ip = $_SERVER['REMOTE_ADDR'];

相关问题