> こうやると、DSTIP は 255.255.255.255 になっているようですが、
> DST の MAC アドレスはデフォルトゲートウェイのものになってい
> ます。
ip(4) を見ると、SOCK_RAW で IP_ONESBCAST を設定すれば
良さそうですが、sin.sin_addr.s_addr が 202.23.252.255
などであれば、イサネットフレームの宛先が IFF_BROADCAST
(ff:ff:ff:ff:ff:ff) になります。ところが
sin.sin_addr.s_addr が 255.255.255.255 だと、default
route に配
UDP limited broadcast が送出できない問題ですが、OS を
6.1-RELEASE から 7.2- RELEASE に切替えてみたところ、
1) fd = socket(PF_INET, SOCK_RAW, IPPROTO_RAW)
2) setsockopt(fd , IPPROTO_IP, IP_ONESBCAST, ..)
の組合せでうまく動作することがわかりました。注意点は
1) sin.sin_addr.s_addr は 255.255.255.255 でなく、自分の
ネットワークの broadcast address にする (これで、送信