Получить IP-адрес клиента в MySQL - PullRequest
20 голосов
/ 07 июня 2011

Я пытаюсь с помощью простого оператора SQL получить IP-адрес клиента.Я не хочу использовать PHP или другие методы.Только чистый SQL.Когда я использую

SELECT USER();

Я получаю

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

Когда я использую

SELECT CURRENT_USER();

Я получаю

dbouser@%

Но какполучить простой IP?Заранее большое спасибо.

Ответы [ 4 ]

37 голосов
/ 07 июня 2011

Вы получите только IP-адрес клиентского процесса, связывающегося с MySQL.Предполагая, что это именно то, что вам нужно:

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

Даст вам имя хоста (или IP-адрес, если разрешение имен не включено, чего обычно нет) для подключения к серверу mysql по текущему соединению.

7 голосов
/ 28 апреля 2012

Получить IP-адрес только без номера порта.

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

3 голосов
/ 14 декабря 2012
SELECT REVERSE(SUBSTRING_INDEX(REVERSE(USER()),'@',1)) as ip;
SELECT SUBSTRING(USER(), LOCATE('@', USER())+1) as ip;
2 голосов
/ 05 августа 2015

@ mvf - вместо обратного вы можете сделать:

SELECT SUBSTRING_INDEX(USER(), '@', -1) AS ip;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...