my $socket = IO::Socket::INET->new( Broadcast => 1, Blocking => 1, ReuseAddr => 1, Type => SOCK_DGRAM, Proto => 'udp', PeerPort => 9999, LocalPort => 0, PeerAddr => inet_ntoa(INADDR_BROADCAST)) || confess "error: failed to create broadcast udp socket - $!"; $socket->send('Q', 0); my ($srcaddr, $data); $srcaddr = $socket->recv($data, 100, 0); die "recv: $!" if !defined($srcaddr); close $socket;