Восстановить 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;