初めて投稿させてもらいます。
一台のPCに2つのNIC(ネットワークカード)がある環境で、
片方のNICだけにブロードキャストメッセージでパケットを送信
したいのですが可能でしょうか?
環境は、VC++6.00 XPです。
よろしくお願います。
㍉
???
> 指定したNICからパケットを送信するには?
> 片方のNICだけにブロードキャストメッセージでパケットを送信
どっちをしたいの?
1)指定したNIC→ブロードキャスト
2)指定したNIC←ブロードキャスト(こいつにのみ)
2)はできないのでは。
というか、ブロードキャストの意味無いじゃんと思う。
というか、どの層で通信をしたいのかがいまいちわかりません
ブロードキャストって何?
マルチキャストであれば、
http://support.microsoft.com/default.aspx?scid=kb;ja;JP409410
>片方のNICだけにブロードキャストメッセージでパケットを送信
‾
>2)指定したNIC←ブロードキャスト(こいつにのみ)
がしたいのでは?
特定のマックアドレスを指定するなどすればできるかもしれませんが、自分には分
からないです。その方法でできたとしても知っているPCにしか送信できないので意
味ないです。
>片方のNICだけにブロードキャストメッセージでパケットを送信
‾
大きさがそろわなかったようで。。
みなさま返信ありがとうございます。
色々説明不足ですみません。
環境としては、PCにNICが2つあって、片方TCP/IP通信で
もう片方がUDP通信です。
UDPの方のNICにだけブロードキャストメッセージ(255.255.255.255)
を流したいのですができますでしょうか?
ソケット生成のメソッドでCreateがありますが、そのパラメータに
送信元IPアドレスを指定できるみたいでやってみたのですが
両方のNICに流れてしまいダメでした。
補足させていただきます。
トーリスガーリさんの
1)指定したNIC→ブロードキャスト
です。
こんなやつ?
http://www003.upp.so-net.ne.jp/geek/programming/winsock/broadcast.html
Winsockでアダプターを指定するときは、bindの2番目の引数にその
アダプターのIPアドレスを指定するんじゃなかったっけ。
確かこれはUDPでも使えたはず。
色々ためしてみました。
Bindの第二引数にIPを指定して試してみましたが、
ブロードキャストメッセージの場合は、
両方のNICから出てしまいました。
IPの性質上避けられそうにありません。
また、マルチキャストの場合は、出力先のNICを選択できるみたいですが、
ターゲットが、マルチキャスト不可なのでこれも無理です。
結局、仕様を変更してユニキャストにすることになりました。
色々ありがとうございました。
ツイート | ![]() |