在 ruby 中接收来自 IP 255.255.255.255 的广播数据包
Receive broadcast packets from IP 255.255.255.255 in ruby
我目前正在努力接收来自 ruby 中 IP 地址 255.255.255.255 的广播数据包。
一般来说,我的网络配置有两个不同的 vlan:
- vlan10: ip 10.10.10.1 网络掩码 255.255.0.0 => 广播地址 10.10.255.255
- vlan20: ip 10.0.0.1 网络掩码 255.0.0.0 => 广播地址 10.255.255.255
作为接收者,我使用以下测试代码来显示传入的数据包:
require 'socket'
addr = ['0.0.0.0', 3020]
BasicSocket.do_not_reverse_lookup = true
# Create socket and bind to address
UDPSock = UDPSocket.new
UDPSock.bind(addr[0], addr[1])
while true
data, addr = UDPSock.recvfrom(1024)
puts "From addr: '%s', msg: '%s'" % [addr[0], data]
end
UDPSock.close
从 10.255.255.255 和 10.10.255.255 接收数据包工作正常。
没有收到发送到 IP 255.255.255.255 的数据包。
我是否需要设置其他属性才能ruby接收“有限广播”数据包?
我希望有人能提供帮助。我真的迷路了
谢谢,乌维
感谢您的帮助。在检查路由器配置期间,我注意到我的 vlan 配置错误导致了此行为。
我目前正在努力接收来自 ruby 中 IP 地址 255.255.255.255 的广播数据包。
一般来说,我的网络配置有两个不同的 vlan:
- vlan10: ip 10.10.10.1 网络掩码 255.255.0.0 => 广播地址 10.10.255.255
- vlan20: ip 10.0.0.1 网络掩码 255.0.0.0 => 广播地址 10.255.255.255
作为接收者,我使用以下测试代码来显示传入的数据包:
require 'socket'
addr = ['0.0.0.0', 3020]
BasicSocket.do_not_reverse_lookup = true
# Create socket and bind to address
UDPSock = UDPSocket.new
UDPSock.bind(addr[0], addr[1])
while true
data, addr = UDPSock.recvfrom(1024)
puts "From addr: '%s', msg: '%s'" % [addr[0], data]
end
UDPSock.close
从 10.255.255.255 和 10.10.255.255 接收数据包工作正常。 没有收到发送到 IP 255.255.255.255 的数据包。
我是否需要设置其他属性才能ruby接收“有限广播”数据包?
我希望有人能提供帮助。我真的迷路了
谢谢,乌维
感谢您的帮助。在检查路由器配置期间,我注意到我的 vlan 配置错误导致了此行为。