2016-10-13 24 views
0

Mosquitto MQTTを使用してクライアントのIPアドレスを記録したいと思います。私はサーバ側でPaho - Pythonを、クライアント側でArduino - PubSubClientを使用しています。Mosquitto MQTTを使用してクライアントIPを取得する方法

PHPでは、それはかなり簡単です、私はちょうど$_SERVER['REMOTE_ADDR']を使用します。 Mosquittoに似たものがありますか?

+0

この情報で何をしようとしていますか?デバッグ/診断用ですか?または、別のプロトコルでクライアントに接続しようとしていますか? – njh

+0

@njh私はシステムの悪用を発見した場合に備えて、IPにフラグを立てることができます。私はArduinoがメッセージを暗号化することができないため、誰かがデータを盗聴してユニットを偽装する可能性があるので心配しています – pekasus

+0

IPフラグ設定システムと同様に、ルータ/ NATシステムの背後にあるすべての端末にフラグを付けることになりますあなたは避けようとしています。 – Vasif

答えて

2

Mosquittoレコードロギングが有効になっている場合、新しいクライアントが接続:

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). 

これは、別のMQTTからそれを取得する方法はありませんローカルホストから接続する新しいクライアントを示しており、クライアントID mosqsub/18943-bagend

を含みクライアントはすべてのクライアントがブローカに接続されている他のクライアントを認識していないためです。

EDIT:mosquitto.confのmanページでは、設定ファイルに次のように使用してMQTTトピックにログインすることができるかもしれ意味:

log_dest topic 

これはとても$SYS/broker/log/<log level>

のトピックに記録します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

は、このメッセージを接続メッセージから削り取ってPahoに持ち込む方法はありますか? – pekasus

+0

いつでもログを解析できますが、これは別の質問です。何かを覚えてから答えを更新しました – hardillb

関連する問題