Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Watch(3)	      User Contributed Perl Documentation	      Watch(3)

NAME
       Net::DHCP::Watch	- A class for monitoring a remote DHCPD	server.

SYNOPSIS
	 use Net::DHCP::Watch;
	 # server name
	 my $Server = 'dhcpd.mydomain.com';
	 # this	machine	ip and ethernet	address
	 my $IP	    = '192.168.1.1';
	 my $Ether  = '01:23:45:67:89:ab';
	 # Net::DHCP::Watch object
	 my $dhcpw = new Net::DHCP::Watch({
		       server => $Server,
		       client => $IP,
		       ether  => $Ether
	       });

	 # Open	network
	 $dhcpw->watch();
	 # Get status
	 my $stat = $dhcpw->status;
	 # print results
	 if ( $stat->{Bad} ) print $stat->{Time},
	   ": Remote DHCP on $Server unavailable (",$stat->{Bad},").\n";

	 if ( $stat->{Ok}  ) print $stat->{Time},
	   ": Remote DHCP on $Server online.\n";

DESCRIPTION
       Net::DHCP::Watch	is a module to help monitor remote DHCP	servers. It
       opens an	udp socket to send and receive responses to and	from a DHCP
       server. It stores the last connection status information.

       This module serves to implement This module can help to write some
       simple code to implement	a reliable DHCP	service	over complex or	simple
       networks.

METHODS
       new Creates a new Net::DHCP::Watch object. The parameters are passed
	   through a hash with the following keys:

	   Server
	       DHCP server name	or IP address to be monitored (not the local
	       machine performing the monitoring).

	   Client
	       Name or IP addres to use	for the	local machine performing the
	       monitoring. Since there is no obvious way to determine that, it
	       is mandatory.

	   Ether
	       Ethernet	address	of the local machine performing	the
	       monitoring. Since there is no obvious way to determine that, it
	       is mandatory. You can pass a 6 element array of bytes or	a ':'
	       separated string	of hex values. In UNIX machines	you can
	       tipically do something like this:

		       my $ether = qx[ /sbin/ifconfig eth0 | tail +1 |\
				       head -1 | awk '{print \$5}'];
		       chomp($ether);

	   Timeout
	       The timeout for network operation (default 10s).

       watch
	   Prepares for	monitoring. Opens an UDP socket	to the server. This
	   method could	fail or	interfere with the operation of	a local	DHCPd
	   server.

       unwatch
	   Closes monitoring. You should use this method before	starting any
	   local DHCP server.

       status
	   Try to comunicate with the server and returns the status in a hash.
	   The hash contains three keywords. Ok	will be	true if	the attempt
	   completed successfully, Bad will be true if the attempt was not;
	   they	will contain the number	of successful (or unsuccessful)
	   contiguous attempts made. Time contains the GMT time	string of the
	   last	attempt.

EXAMPLES
       See the directory examples in source distribution for an	example.

BUGS
       There should be a Net::DHCP class to handle the DHCP protocol.

LIMITATIONS
       On platforms without alarm() function defined the monitoring can	hang
       forever if some network problems	show up	(cable problem,	etc)?

       The machine that	is running the test MUST BE a KNOWN client of the
       remote DHCP server.

AUTHOR
       Evilio del Rio, edelrio@icm.csic.es

ACKNOWLEDGEMENTS
       I would like to acknowledge the valuable	contributions of the people
       who made	suggestions to improve this code, specially to Nick Garfield
       who provided the	solution for monitoring	disjoint networks.

SEE ALSO
       perl(1),	IO::Socket(3), Net::hostent(3).	RFCs 2131 and 2132.

       Ralph Droms _ Ted Lemon,	The DHCP Handbook, MacMillan (Indianapolis),
       1999.

perl v5.32.0			  2003-10-28			      Watch(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | EXAMPLES | BUGS | LIMITATIONS | AUTHOR | ACKNOWLEDGEMENTS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Net::DHCP::Watch&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help