特定のポートでUDPパケットを送信しようとしています。
$ echo hello | socat - UDP-DATAGRAM:192.168.1.255:11111,broadcast,sourceport=22222
ただし、代わりに任意のポートを使用してください。
# tcpdump -vvvv -ttttt -nienp0s31f6 udp
tcpdump: listening on enp0s31f6, link-type EN10MB (Ethernet), snapshot length 262144 bytes
00:00:00.000000 IP (tos 0x0, ttl 64, id 40649, offset 0, flags [DF], proto UDP (17), length 34)
192.168.1.17.35829 > 192.168.1.255.11111: [udp sum ok] UDP, length 6
特定のポートでUDPパケットを送信(ブロードキャスト)する方法は?
また、ユニキャストUDPパケットを送信するためにsocatを使用してみましたが、sourceport
それも認識されませんでした。
答え1
bind
代わりにこのオプションを使用してくださいsourceport
。
$ echo hello | socat - UDP-DATAGRAM:192.168.1.255:11111,broadcast,bind=:22222
sourceport
たとえば、....では明らかに動作するので、この場合は動作しない理由はわかりません。しかし、同じ作業がすでに完了しているのに、UDP-CONNECT
なぜ別のオプションがあるのかは不明です。sourceport
bind