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.