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