0

Linux では、パケットを作成したユーザーまたはグループ、つまりソケットの所有者に基づいて、localhost から発信されたパケットをフィルタリングすることができます。

iptables ... -m owner --uid-owner $USER --gid-owner $GROUP -p tcp ...

しかし、localhost で実行され、C で記述され、パケットを受信するプログラムの観点からアプローチしたいと思います。ポートにバインドすると、新しい TCP 接続 / UDP パケットが来ます。誰がそれを送ったかを知る方法は?

4

2 に答える 2

2

奇妙なユースケースですが、おそらく次のようなものが機能する可能性があります-しかし、それはきれいではありません:

  1. acceptを使用して返された fd の inode 番号を取得しfstatます。
  2. 読んだ/proc/self/net/tcp
  3. inode 番号に一致する行を解析して見つけます。
  4. その行の uid を使用します。
于 2013-07-30T11:38:14.917 に答える
1

できません。リモート IP アドレスとポートを取得します。それでおしまい。

于 2013-07-30T09:56:08.147 に答える