2016-10-13 5 views
0

Ich möchte die IP-Adresse von Clients mit Mosquitto MQTT protokollieren. Ich benutze Paho - Python auf der Serverseite und Arduino - PubSubClient auf der Clientseite.Wie bekomme ich Client-IP mit Mosquitto MQTT

In PHP ist es ziemlich einfach, ich verwende einfach $_SERVER['REMOTE_ADDR']. Gibt es etwas Ähnliches für Mosquitto?

+0

Was versuchen Sie mit diesen Informationen zu tun? Ist es nur für die Fehlersuche/Diagnose? Oder versuchen Sie, sich mit Clients eines anderen Protokolls zu verbinden? – njh

+0

@njh Ich werde halten, falls ich Missbrauch des Systems finde, dann kann ich die IP markieren. Ich bin besorgt darüber, weil der Arduino die Nachrichten nicht verschlüsseln kann, also könnte jemand die Daten schnüffeln und eine Einheit spoofen – pekasus

+0

Wie bei jedem IP-Flagging-System befürchte ich, dass Sie alle Terminals hinter dem Router/NAT-System markieren werden du versuchst es zu vermeiden. – Vasif

Antwort

2

mosquitto Aufzeichnungen, wenn neue Clients eine Verbindung herstellen, wenn die Protokollierung aktiviert ist:

Oct 13 15:09:32 bagend mosquitto[1361]: 1476367772: New connection from 127.0.0.1 on port 1883. 
Oct 13 15:09:32 bagend mosquitto[1361]: 1476367772: New client connected from 127.0.0.1 as mosqsub/18943-bagend (c1, k60). 

Dabei wird ein neuer Client zeigt von localhost verbinden und umfasst die Client-ID mosqsub/18943-bagend

Es gibt keinen Weg, um es von einem anderen MQTT zu erhalten Client, da jeder Kunde keine Kenntnis von anderen Clients hat, die mit dem Broker verbunden sind.

EDIT: Der mosquitto.conf Mann Seite bedeutet, dass Sie zu einem MQTT Thema anmelden können möglicherweise die folgende in der Konfigurationsdatei:

log_dest topic 

Diese meldet sich zu einem Thema von $SYS/broker/log/<log level>

so Sie erhalten so etwas beim Abonnieren mit mosquitto_sub -v -t '$SYS/broker/log/#'

$SYS/broker/log/N 1476378785: New connection from 127.0.0.1 on port 1885. 
$SYS/broker/log/N 1476378785: New client connected from 127.0.0.1 as mosqpub/4654-tiefighter (c1, k60). 
$SYS/broker/log/N 1476378785: Client mosqpub/4654-tiefighter disconnected. 
+0

gibt es eine Möglichkeit, diese IP von der connect-Nachricht zu kratzen und es in Paho zu bringen? – pekasus

+0

Sie können Protokolle immer analysieren, aber das wäre eine separate Frage. Ich habe die Antwort aktualisiert, nachdem ich mich an etwas erinnert habe – hardillb

Verwandte Themen