Восстановить IP-адрес клиента в mysql

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

SELECT USER();

Я получаю

[email protected]

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

SELECT CURRENT_USER();

Я получаю

[email protected]%

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

Ответы

Ответ 1

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

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

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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