2016-10-15 5 views
0
私は(一部のDNSのもの)ソケットで働いています

をエスケープするために、私はここからどのように把握することはできません。文字列は X進アスキー

a = 'www' 

が思う

b = b'\x77\x77\x77' 

は私が知っている作ります/

1)それは0x77」からは '\ X77' にhex(ord(char))

2)形式で進値にそれぞれ変換します。私はする必要があります

3)それは私が多くの組み合わせを試してみましたbytes(a,'utf-8')

をバイトに変換し、しかし、私は常に2で失敗した)と、一般的に私は私の手順が複雑すぎると思います。これには簡単な解決策がありますか?

+1

'B =バイト( 'アスキー')'が、 'B "WWW" は'印刷可能であるので、あなたは、Pythonのプリント 'B '\ X77 \ X77用の\ x77''を作ることは決してないだろう。 –

+0

ソケットを使って何をしようとしているのかを詳しく説明する必要があります。たとえば、DNS名のIPアドレスをバイト文字列として取得しようとしていますか? –

+0

@BarryScottはまったく反対です私はDNSレスポンス(dnslibのようなライブラリなし)をしようとしていますが、ドメイン名/ IPアドレスを16進数のバイトに変換/エンコードする際に問題があります – WhoKnows

答えて

0

私は答えを試みます。

あなたがしたいのは、バイナリメッセージをDNSサーバと交換する作業です。

文字列と整数をバイナリ形式に変換する方法が不思議です。

バイナリメッセージをパックしてアンパックするstructモジュールを見てください。

また、バイナリ形式のIPアドレスを文字列に変換する必要があります。

socket.inet_ntoaとsocket.inet_atonを見てください。

バリー

関連する問題