Windows XP以降のソリューション。好ましくはC#またはC++で。特定のアダプタ(192.168.101.1など)からのUDPブロードキャスト(255.255.255.255)のみを送信します。 Windowsの場合
私たちが連絡しようとしているデバイスがこれに応答していないため、サブネット向けブロードキャスト(192.168.101.255など)を使用してブロードキャストしたくないです。代わりに、ブロードキャストが他のNICで送信されないように、宛先が255.255.255.255のUDPデータグラムを特定のNIC/IPAddressからのみ送信できるようにする必要があります。
これは、私たちがIPスタックを迂回しなければならないことを意味します。つまり、これは疑問です。特定のNIC/MACアドレスからのみUDP/IP準拠のデータグラムを送信するために、Windows上のIPスタックを回避するにはどうすればよいですか?
これはC#で直接可能ですか?または、例えば独自のラッパーを作成する必要がありますか? C++/CLI? – nietras
var localEndPoint =新しいIPEndPoint(IPAddress.Parse( "192.168.103.1")、0); using(var socket = new UdpClient(localEndPoint)) { var remoteEndPoint = new IPEndPoint(IPAddress.Parse( "255.255.255.255")、3956); var datagram =新しいバイト[] {0x11、0x22、0x33、0x44}; //ブロードキャストデータグラムをローカルエンドポイントからのみ送信しようとしています //ただし、sendはWireshark socket.Send(datagram、datagram.Length、remoteEndPoint)に従ってすべてのNICからパケットをブロードキャストします。 } – nietras
まあ、どうやってコードを正しく貼り付けますか? Anyhoo、これはうまくいかないので、与えられた答えはうまくいかない。 – nietras