私は、私のマシンがポーランドのマシンにUDPパケットを送受信していたことを、ほぼ間違いなく発見しました。ポーランドには何の問題もありませんが、なぜ私のラップトップがサーバーと通信する必要があるのか分かりません。逆DNSは、エンドユーザにアドレスを提供しているISPだけを示しています。 Wiresharkを使って、暗号化されていると思われるメッセージを監視することができます。私のマシンから送信されたすべてのパケットは同じ送信元ポートを持っていたので、それを送信したアプリケーションがこのUDPソケットを開いて使用していました。私は方法を探しています:
1)システム内で開いているすべての現在のソケットを列挙します。これには、作成したプロセスと、TCPとUDPの両方に対して、現在バインドされているポートとアドレスが列挙されます。
2)アプリケーションはこれらのソケットを開いて使用し、すぐに閉じることができるので、ソケットが作成されるたびに何らかの方法で通知を受け取るプログラムを見つけ出す(または、おそらく書く)ことが大好きです。ソースおよび/または宛先アドレスおよびポートにバインドされる。 UDPの場合は、ソケットがメッセージを送信した宛先IPアドレスとポートを監視/追跡することもできます。
トラフィックを監視したくない場合は、トラフィックを表示する場合はWiresharkがあります。どのアプリケーションがパケットを生成しているのかを知るために相互参照を行いたいと思っています。私はそれが私が信頼しているプロセスから来たものか、それがもっと調査する必要があるものかどうかを知りたい。
誰もがこれを行うことができるアプリケーション(Windowsプラットフォーム用)を知っていますか?そうでない場合は、この機能を提供する.NETまたはWindows APIに関するアイデアを自分で書きたいのですか?
Edit:
After further research - looks like the APIs to use are GetExtendedUdpTable and GetExtendedTcpTable, CodeProject.com has some samples wrapping these in .NET (see http://www.codeproject.com/Articles/14423/Getting-the-active-TCP-UDP-connections-using-the-G). So a combination of this API and some sniffer code would be needed to monitor and keep track of what hosts at what ports using what protocol any particular application on your machine is talking to. If I ever get some free time, I'll consider creating this, if you know of an app that does all this, please let me know.