my $socket = IO::Socket::INET->new(Proto => 'udp', Broadcast => 1, PeerPort => '67', LocalPort => '68', PeerAddr => '255.255.255.255') or die ($@); # create and send DHCP Packet my $disc = Net::DHCP::Packet->new(xid => int(rand(0xFFFFFFFF)), DHO_DHCP_MESSAGE_TYPE() => DHCPINFORM()) or die "Can't create DHCP discover packet: $!"; $socket->send($disc->serialize()) or die "Can't send DHCP discover packet: $!"; my @ready = IO::Select->new($socket)->can_read(5); if (@ready) { my $newmsg; $socket->recv($newmsg, 1024) or die "Can't recv DHCP discover packet: $!";