簡體   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