1

Python でソケット モジュールを使用して、基本的な UDP クライアント サーバー通信を行っています。クライアントがサーバーにパケットを送信し、サーバーがクライアントのパブリック IP アドレス、ポート、およびサーバーに到達したときに UDP パケットが持っていた TTL を表す番号で応答します。これが私の主な問題です: recvfrom() などでパケットを受信し、サーバーに到達したときの TTL 値を読み取る方法はありますか?

どうもありがとうございました!

マッテオ・モンティ

4

3 に答える 3

2

setockopt(IP_RECVTTL) を設定してから recvmsg() を使用すると思います。しかし、Python の標準ライブラリには recvmsg がないようです ( http://bugs.python.org/issue6560を参照)。そのため、おそらく、Python でインポート可能で、必要な機能を備えた小さな C または C++ 共有ライブラリを作成する必要があります。または、リンクしたページのパッチを使用してみてください。

于 2012-02-11T01:52:31.897 に答える
0

私の知る限り、これは一般的にユーザー空間に公開されていません。このスタックオーバーフローの回答で説明されているように、これを達成するには libpcap のようなものを使用する必要があると思います:

https://stackoverflow.com/a/2362554/864393

于 2012-02-11T01:37:06.407 に答える