Python でソケット モジュールを使用して、基本的な UDP クライアント サーバー通信を行っています。クライアントがサーバーにパケットを送信し、サーバーがクライアントのパブリック IP アドレス、ポート、およびサーバーに到達したときに UDP パケットが持っていた TTL を表す番号で応答します。これが私の主な問題です: recvfrom() などでパケットを受信し、サーバーに到達したときの TTL 値を読み取る方法はありますか?
どうもありがとうございました!
マッテオ・モンティ
setockopt(IP_RECVTTL) を設定してから recvmsg() を使用すると思います。しかし、Python の標準ライブラリには recvmsg がないようです ( http://bugs.python.org/issue6560を参照)。そのため、おそらく、Python でインポート可能で、必要な機能を備えた小さな C または C++ 共有ライブラリを作成する必要があります。または、リンクしたページのパッチを使用してみてください。
私の知る限り、これは一般的にユーザー空間に公開されていません。このスタックオーバーフローの回答で説明されているように、これを達成するには libpcap のようなものを使用する必要があると思います: