http://qs321.pair.com?node_id=325309


in reply to Intercepting UDP broadcasts

I get bootp requests with this code.

Update I don't know if the additional parameters had anything to do with it. I thought restarting the network printer was sending the msgs but apparently that isn't the case. I just got lucky and caught a few boots.

FYI: This is perl, v5.8.0 built for MSWin32-x86-multi-thread
Binary build 806 provided by ActiveState Corp.http://www.ActiveState.com
Built 00:45:44 Mar 31 2003
Running on Windows 2000 Workstation.
@ISA = qw(IO::Socket);
$VERSION = "1.26";

Update2: Abigail-II your code works stright up on my machine. I just got to test it now.

use strict; use warnings; use IO::Socket::INET; my $port = getservbyname 'bootps', 'udp'; my $socket = IO::Socket::INET -> new (LocalPort => $port, Broadcast => 1, Proto => 'udp', ReuseAddr => 1, Type => SOCK_DGRAM) or die "Failed to bind to socket: $@"; my $mess; $socket -> recv ($mess, 1024); if (defined $mess) { print "Saw a bootp request.\n$mess\n"; } else { print "No bootp request.\n"; }