プログラムの方で最近、L2でパケットをキャプチャし、DST_MACアドレスの値を変更し送信するものを作成している。 まあ、ARPスプーフィング関係のツールですな・・・ で、問題発生。 L2でパケットの送受信をするため、ループバックのパケットを受信してしまう問題に直面した。 普通なら、DST_MACアドレスが自分なら落とせば問題ないのだが、DST_MACアドレスを書き換えているのでそれはできない。 と言うわけでいろいろ試行錯誤した結果、「続きを見る」のようなプログラムで何とかなることが解った。 話としては Socket_Handle = socket( PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); で、L2のソケットを作成し、 RecvBufferLen = recvfrom(Socket_Handle, (char *)RecvBuffer, sizeof