一般に、いいえ、これは不可能です。通信相手が MAC アドレスを持っていない可能性があるためです (たとえば、イーサネットに基づいていないネットワーク ハードウェアを使用している場合)。特に、MAC アドレスに関する情報は、IP、TCP、または UDP 層によって伝達されません。これらの層は、代わりに IP アドレスを使用します。そのため、ピアの MAC アドレスを知りたい場合は、アプリケーション レベルで、ピアのプログラムから MAC アドレスを送信する必要があります。
(上記の小さな例外: IPv6 経由で通信し、自己割り当てのリンクローカル IPv6 アドレス (fe80::blah など) を使用している場合、自己割り当ての IPv6 アドレスからコンピューターの MAC アドレスを導出することが可能です。自己割り当ての IPv6 アドレスは通常、MAC アドレスから派生し、IPv6 アドレスのサブセットとして MAC アドレスを含みます [リンクローカル アドレスは、両方のマシンが同じ場所にある場合にのみ役立つため、これはインターネット経由では機能しないことに注意してください。同じ LAN])
リモート ピアがプログラムのホストと同じ LAN 上にある (そして LAN がイーサネット LAN である) 場合、プログラムは Windows 固有の API を使用して、マシンの ARP テーブルで IPAddress<->MACAddress マッピングを検索している可能性があります。リモート ピアがインターネット上の別の場所にある場合、それがどのように行われるのかわかりません。