CI では、データグラム ソケット (AF_INET、SOCK_DGRAM) を INADDR_ANY にバインドします。次に、このソケットを定期的に使用してデータグラムを送受信し、pcap でパケットの流れを監視します。問題は、pcap を使用してパケットが着信か発信かを判断できないことです。
送受信と pcap 監視は別々のスレッドで実行されており、同期のため通信できません。送信されたパケットではなく、着信パケットのみを追跡したいのですが、どうすればそれができるかについて誰か考えがありますか?
宛先 IP アドレスをテストすることは既に考えていましたが、ローカル IP を取得する方法がわかりません。これが実行されているマシンには静的IPがなく、割り当てられたドメイン名ははるかに少なく、INADDR_ANYにバインドされたソケットではgetsocknameが機能しないようです。また、ioctl(sockfd, SIOCGIFCONF, &buffer) を使用してみましたが、どちらも機能しませんでした - buffer.ifc_len=0 を設定します。