Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Accessing NIC/mac address ?

by rob_au (Abbot)
on Feb 15, 2002 at 03:43 UTC ( #145611=note: print w/replies, xml ) Need Help??


in reply to Accessing NIC/mac address ?

If you are running this on a *NIX based platform, you should look into the IO::Interface module - This module gives you access to a wealth of information about network interface configurations. For example, from the documentation ...

use IO::Socket; use IO::Interface qw(:flags); my $s = IO::Socket::INET->new(Proto => 'udp'); my @interfaces = $s->if_list; for my $f (@interfaces) { print "interface = $if\n"; my $flags = $s->if_flags($if); print "addr = ",$s->if_addr($if),"\n", "broadcast = ",$s->if_broadcast($if),"\n", "netmask = ",$s->if_netmask($if),"\n", "dstaddr = ",$s->if_dstaddr($if),"\n", "hwaddr = ",$s->if_hwaddr($if),"\n"; print "is running\n" if $flags & IFF_RUNNING; print "is broadcast\n" if $flags & IFF_BROADCAST; print "is p-to-p\n" if $flags & IFF_POINTOPOINT; print "is loopback\n" if $flags & IFF_LOOPBACK; print "is promiscuous\n" if $flags & IFF_PROMISC; print "is multicast\n" if $flags & IFF_MULTICAST; print "is notrailers\n" if $flags & IFF_NOTRAILERS; print "is noarp\n" if $flags & IFF_NOARP; }

If all that you are looking for is the MAC address of the interface card, then the $obj->if_hwaddr method is all you will need to worry about.

 

perl -e 's&&rob@cowsnet.com.au&&&split/[@.]/&&s&.com.&_&&&print'

Replies are listed 'Best First'.
Thanks ! Re: Re: Accessing NIC/mac address ?
by peterg22 (Novice) on Feb 15, 2002 at 12:42 UTC
    Yep, this works really well, so I will be able to start coding. Thanks to everyone that offered suggestions. I didn't want to use an external program unless there was no other way. I'll post a snippet when I have something finished.
    There is a small typo though -

    for my $f (@interfaces) {
    should be:
    for my $if (@interfaces) {
    otherwise nothing prints out..

    Mildew Hall.. Home of PurePostPro and other Perl goodies!
    Not only oysters create Pe[a]rls

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://145611]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2022-12-06 08:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?