#!/usr/bin/env perl # # danielbowling424@msn.com # http://swagg.cc # # Copyright 2019 Daniel Bowling, Mount Rainier, Maryland, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. use strict; use warnings; sub unix_mac { $_ =~ tr/[A-F]/[a-f]/; # toggle case $_ =~ s/[\-\.:]//g; # strip out symbols $_ =~ s/\G[a-f0-9]{2}\K/:/g; # insert colons every 2 characters $_ =~ s/[:]$//; # strip off remainder colon return $_; } if (@ARGV) { @_ = @ARGV; } elsif (not -t STDIN) { chomp (@_ = ); } else { print "USAGE: $0 \n" . "Fix up MAC from arguments or standard input if no argument given.\n"; exit 64; } foreach (@_) { unix_mac($_); print "$_\n"; }