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

FreeBSD Manual Pages

  
 
  

home | help
Net::Ifconfig::WrapperUser Contributed Perl DocumentaNet::Ifconfig::Wrapper(3)

NAME
       Net::Ifconfig::Wrapper -	provides a unified way to configure network
       interfaces on FreeBSD, OpenBSD, Solaris,	Linux, OS X, and WinNT (from
       Win2K).

SYNOPSIS
	 use Net::Ifconfig::Wrapper;
	 my $rhInfo = Net::Ifconfig::Wrapper::Ifconfig('list');

DESCRIPTION
       This module provides a unified way to configure the network interfaces
       on FreeBSD, OpenBSD, Solaris, Linux, OS X, and WinNT (from Win2K)
       systems.

       Only "inet" (IPv4) and "ether" (MAC) addresses are supported at this
       time

       On Unix,	this module calls the system "ifconfig"	command	to gather the
       information.  On	Windows, the functions from IpHlpAPI.DLL are called.

       For all supported Unixes, "Net::Ifconfig::Wrapper" expects the
       "ifconfig" command to be	"/sbin/ifconfig".

       See the top-level README	file for a list	of tested OSes.

       On the MSWin32 family, only Windows NT is supported.  In	the Windows NT
       family, only Windows 2000 or later is supported.

The Net::Ifconfig::Wrapper methods
       "Ifconfig(Command, Interface, Address, Netmask);"
	   The one and only method of the "Net::Ifconfig::Wrapper" module.
	   Does	all the	jobs.  The particular action is	described by the
	   $Command parameter.

	   $Command could be:

	   'list'  "Ifconfig('list', '', '', '')" will return a	reference to a
		   hash	containing information about interfaces.

		   The structure of this hash is the following:

		     {IfaceName	=> {'status' =>	0|1	     # The status of the interface. 0 means down, 1 means up
				    'ether'  =>	MACaddr,     # The ethernet address of the interface if	available
				    'descr'  =>	Description, # The description of the interface	if available
				    'inet'   =>	{IPaddr1 => NetMask, # The IP address and his netmask, both are	in AAA.BBB.CCC.DDD notation
						 IPaddr2 => NetMask,
						 ...
						},
		     ...
		     };

		   Interface, Address, Netmask parameters are ignored.

		   The following shows what program is called for each OS:

		   FreeBSD     "/sbin/ifconfig -a"

		   Solaris     "/sbin/ifconfig -a"

		   OpenBSD     "/sbin/ifconfig -A"

		   Linux       "/sbin/ifconfig -a"

		   OS X	       "/sbin/ifconfig -a"

		   MSWin32     "GetAdaptersInfo" function from "IpHlpAPI.DLL"

		   Known Limitations:

		   OpenBSD: "/sbin/ifconfig -A"	command	is not returning
		   information about MAC addresses so we are trying to get it
		   from	'/usr/sbin/arp -a' command (first 'static' entry).  If
		   no one present the 'ff:ff:ff:ff:ff' address is returned.

		   MSWin32: "GetAdaptersInfo" function is not returning
		   information about the interface which has address 127.0.0.1
		   bound to it,	so we have no way to return it.

		   Not a limitation, but a small problem: in MSWin32,
		   interface names are not human-readable, they	look like
		   "{843C2077-30EC-4C56-A401-658BB1E42BC7}" (on	Win2K at
		   least).

	   'inet'  This	function is used to set	IPv4 address on	interface.  It
		   is called as

		     Ifconfig('inet', $IfaceName, $Addr, $Mask);

		   $IfaceName is an interface name as displayed	by 'list'
		   command

		   $Addr is an IPv4 address in the "AAA.AAA.AAA.AAA" notation

		   $Mask is an IPv4 subnet mask	in the "MMM.MMM.MMM.MMM"
		   notation

		   In order to accomplish this,	the following actual
		   "ifconfig" programs are called:

		   FreeBSD     "/sbin/ifconfig %Iface% inet %Addr% netmask
			       %Mask% up"

		   Solaris     "/sbin/ifconfig %Iface% inet %Addr% netmask
			       %Mask% up"

		   OpenBSD     "/sbin/ifconfig %Iface% inet %Addr% netmask
			       %Mask% up"

		   Linux       "/sbin/ifconfig %Iface% inet %Addr% netmask
			       %Mask% up"

		   OS X	       "/sbin/ifconfig %Iface% inet %Addr% netmask
			       %Mask% up"

		   MSWin32:    nothing :(

		   Known Limitations:

		   MSWin32: I did not find a reliable way to recognize the
		   "main" address on the Win32 network interface, so I have
		   disabled this functionality.	 If you	know how, please let
		   me know.

	   'up'	   Just	a synonym for 'inet'

	   'down'  This	function is used to bring specified interface down.
		   It is called	as

		     Ifconfig('inet', $IfaceName, '', '');

		   $IfaceName is an interface name as displayed	by 'list'
		   command

		   Last	two arguments are ignored.

		   In order to accomplish this,	the following programs are
		   called:

		   FreeBSD     "/sbin/ifconfig %Iface% down"

		   Solaris     "/sbin/ifconfig %Iface% down"

		   OpenBSD     "/sbin/ifconfig %Iface% down"

		   Linux       "/sbin/ifconfig %Iface% down"

		   OS X	       "/sbin/ifconfig %Iface% down"

		   MSWin32     Sorry, this function is not possible.

		   Known Limitations:

		   MSWin32: I did not find the way to implement	the 'up'
		   command so I	did not	implement 'down'.

	   '+alias'
		   This	function is used to set	IPv4 alias address on
		   interface. It have to be called as

		     Ifconfig('+alias',	$IfaceName, $Addr, $Mask);

		   $IfaceName is an interface name as displayed	by 'list'
		   command

		   $Addr is an IPv4 address in the "AAA.AAA.AAA.AAA" notation

		   $Mask is an IPv4 subnet mask	in the "MMM.MMM.MMM.MMM"
		   notation

		   In order to accomplish this,	the following "ifconfig"
		   programs are	called:

		   FreeBSD     "/sbin/ifconfig %Iface%	       inet %Addr%
			       netmask	%Mask% alias"

		   Solaris     "/sbin/ifconfig %Iface%:%Logic% inet %Addr%
			       netmask %Mask% up"

		   OpenBSD     "/sbin/ifconfig %Iface%	       inet %Addr%
			       netmask	%Mask% alias"

		   Linux       "/sbin/ifconfig %Iface%:%Logic% inet %Addr%
			       netmask	%Mask% up"

		   OS X	       "/sbin/ifconfig %Iface%	       inet %Addr%
			       netmask	%Mask% alias"

		   MSWin32     "AddIPAddress" function from "IpHlpAPI.DLL"

		   First available logic interface is taken automatically for
		   Solaris and Linux

	   'alias' Just	a synonim for '+alias'

	   '-alias'
		   This	function is used to remove IPv4	alias address from
		   interface. It have to be called as

		     Ifconfig('-alias',	$IfaceName, $Addr, '');

		   $IfaceName is an interface name as displayed	by 'list'
		   command.

		   $Addr is an IPv4 address in the "AAA.AAA.AAA.AAA" notation.

		   Last	argument is ignored if present.

		   In order to accomplish this,	the following "ifconfig"
		   programs are	called:

		   FreeBSD     "/sbin/ifconfig %Iface% inet %Addr% -alias"

		   Solaris     "/sbin/ifconfig %Iface%:%Logic% down"

		   OpenBSD     "/sbin/ifconfig %Iface% inet %Addr% -alias"

		   Linux       "/sbin/ifconfig %Iface%:%Logic% down"

		   OS X	       "/sbin/ifconfig %Iface% inet %Addr% -alias"

		   MSWin32     "DeleteIPAddress" function from "IpHlpAPI.DLL"

		   Appropriate logic interface is obtained automatically for
		   Solaris and Linux

	   On success, the "Ifconfig(...)" function returns the	defined	value.
	   Actually, it	is a reference to the array containing the output of
	   the actual "ifconfig" program called.

	   In case of error, "Ifconfig(...)" returns 'undef' value, and	the $@
	   variable contains the error message.

   EXPORT
       None by default.

AUTHOR
       Daniel Podolsky,	<tpaba@cpan.org> As of 2015-11,	maintained by Martin
       Thurn <mthurn@cpan.org>

SEE ALSO
       ifconfig(8), Internet Protocol Helper in	Platform SDK.

perl v5.24.1			  2016-02-06	     Net::Ifconfig::Wrapper(3)

NAME | SYNOPSIS | DESCRIPTION | The Net::Ifconfig::Wrapper methods | AUTHOR | SEE ALSO

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

home | help