2017-06-22 9 views
0

私は、python 3.xとpuresnmpモジュールを使用してciscoスイッチのarpテーブルを取得しようとしています。バイトリテラルSNMP応答を期待されるMAC値に変換する方法

SNMPウォークを実行したときに返される値の1つの例です。

value_returned = b'\x00!V\x12\x9a\xc1h' 

私は次を使用して、それを解読しようとしています:

mac = b'\x00!V\x12\x9a\xc1h' 
a = mac.decode('UTF-8') 

をしかし、私は次のエラーを取得する:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9a in position 4: invalid start byte 

は、どのように私は内に戻される値を変換します文字列。私は文字列や16進数に変換できますか?

+0

えを返さ? SNMPレスポンスとしてどのようにバイトリテラルを取得できますか? – EJP

+0

@EJP私は戻ってきたことは分かりません。私は使用しているsnmpモジュールがその原因であると仮定しています。なぜあなたは私にこの質問をしていますか? – evolvd

+0

SNMPはASN.1(https://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One)を使用してデータを転送します。返されたデータはある種のASN.1データですか?私はいくつかのASN.1デコーダで実行しようとしましたが、動作しませんでした。あなたにそのデータを与えるのは何ですか? – crchurchey

答えて

0

主な問題は、返された値をどのように変換するかを調べることでした。私はいくつかの方法を試しましたが、何も動作していないようです。

私は最終的に

b'L\xccjN\x00\xee'.hex() 

を試してみましたが、それは正しい値

関連する問題