2011-11-27 18 views

Respuesta

139

Para obtener el nombre de host actual: -

select @@hostname; 
show variables where Variable_name like '%host%'; 

Para obtener anfitriones para todas las peticiones entrantes: -

select host from information_schema.processlist; 

Basado en su último comentario,
no creo que se puede resolver IP para el nombre de host que usa la función pura de mysql,
, ya que requiere una búsqueda de red, lo que podría llevar mucho tiempo.

Sin embargo, el documento menciona este mysql: -

resolveip google.com.sg 

documentos: - http://dev.mysql.com/doc/refman/5.0/en/resolveip.html

+0

No tengo un host remoto para probar en cajero automático, pero "SELECT @@ hostname" da mi host local. Si la sesión de MySQL está conectada a un host diferente ¿mostrará el nombre de los hosts remotos? ¿Puedo obtener IP? –

+0

Sí, mostrará un host diferente si proviene de otro host. Sin embargo, para resolver la IP correspondiente es un poco difícil ... – ajreal

+0

¿Es posible obtener IP de My-SQL? Eso seria genial. ¡Arriba un voto para @@ Nombre de host, gracias! Se aceptará si no es posible en IP –

16

Tal

mysql> show processlist; 
+1

. Esta es una mala sugerencia si está tratando de acceder de forma remota. –

2

Creo que tratar de conseguir el host remoto del usuario conneting ..

Puede obtener una cadena como 'myuser @ localhost' del comando:

SELECT USER() 

Puede dividir este resultado en el signo '@', para obtener las piezas:

-- delivers the "remote_host" e.g. "localhost" 
SELECT SUBSTRING_INDEX(USER(), '@', -1) 

-- delivers the user-name e.g. "myuser" 
SELECT SUBSTRING_INDEX(USER(), '@', 1) 

si está conneting través de la dirección IP obtendrá el ipadress en lugar del nombre de host.

0
show variables where Variable_name='hostname'; 

Eso podría ayudarlo !!

Cuestiones relacionadas