Zeigen Sie den MySQL-Host über den SQL-Befehl an


96
Show Database
Use database
show tables
Describe <table>

Alles gut und gut, aber es ist möglich, den aktuellen Verbindungshost anzuzeigen. Nicht connection_id, sondern die IP-Adresse oder der Name des Hosts.

Antworten:


197

So erhalten Sie den aktuellen Hostnamen: -

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

So erhalten Sie Hosts für alle eingehenden Anfragen:

select host from information_schema.processlist;

Aufgrund Ihres letzten Kommentars
glaube ich nicht, dass Sie die IP-Adresse für den Hostnamen mithilfe der reinen MySQL-Funktion auflösen können,
da hierfür eine Netzwerksuche erforderlich ist, die lange dauern kann .

In MySQL-Dokumenten wird jedoch Folgendes erwähnt:

resolveip google.com.sg

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


Ich habe keinen Remote-Host zum Testen am Geldautomaten, aber "SELECT @@ Hostname" gibt meinen lokalen Host an. Wenn die MySQL-Sitzung mit einem anderen Host verbunden ist, wird der Name des Remote-Hosts angezeigt? Kann ich IP bekommen?
Craig Stewart

Ja, es wird ein anderer Host angezeigt, wenn Sie von einem anderen Host stammen. Die entsprechende IP aufzulösen ist jedoch etwas schwierig ...
Ajreal

Ist es möglich, IP von My-SQL zu erhalten? Das wäre toll. Bis zu einer Stimme für @@ Hostname, danke !! Akzeptiert, wenn nicht möglich auf IP
Craig Stewart

Rufen Sie über die Befehlszeile die aktuell verbundene Remote-Host-IP in SQL ab. Grund, Langlebigkeit eines Skripts Ich kann in meinem Code nicht 100% sicher sein, dass wir mit demselben Host verbunden sind !!
Craig Stewart

Malaysisch, aber Singapur PR.
Ajreal


6

Ich denke, Sie versuchen, den Remote-Host des vernetzten Benutzers zu bekommen ...

Sie können einen String wie 'myuser @ localhost' über den folgenden Befehl abrufen:

SELECT USER()

Sie können dieses Ergebnis auf dem @ -Zeichen aufteilen, um die Teile zu erhalten:

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

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

Wenn Sie über eine IP-Adresse eine Verbindung herstellen, erhalten Sie die IP-Adresse anstelle des Hostnamens.


1
show variables where Variable_name='hostname'; 

Das könnte dir helfen !!


Interessante meine geben damit nichts zurück.
Vitor Canova

Dies gibt den Server-Hostnamen zurück, nicht den Client-Hostnamen für die Verbindung, wie angefordert ...
Hartmut Holzgraefe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.