[#64] Addition of Wireshark abbreviations for OUI manufacturers
This commit is contained in:
@@ -46,6 +46,7 @@ use Archive::Extract;
|
||||
$Archive::Extract::PREFER_BIN = 1;
|
||||
use HTTP::Tiny;
|
||||
use Try::Tiny;
|
||||
use Encode;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@@ -168,7 +169,9 @@ sub deploy_oui {
|
||||
if ($line =~ m/^\s*(.{2}-.{2}-.{2})\s+\(hex\)\s+(.*)\s*$/i) {
|
||||
my ($oui, $company) = ($1, $2);
|
||||
$oui =~ s/-/:/g;
|
||||
$data{lc($oui)} = $company;
|
||||
my $abbrev = shorten($company);
|
||||
$data{lc($oui)}{'company'} = $company;
|
||||
$data{lc($oui)}{'abbrev'} = $abbrev;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,7 +179,12 @@ sub deploy_oui {
|
||||
$schema->txn_do(sub{
|
||||
$schema->resultset('Oui')->delete;
|
||||
$schema->resultset('Oui')->populate([
|
||||
map {{oui => $_, company => $data{$_}}} keys %data
|
||||
map {
|
||||
{ oui => $_,
|
||||
company => $data{$_}{'company'},
|
||||
abbrev => $data{$_}{'abbrev'}
|
||||
}
|
||||
} keys %data
|
||||
]);
|
||||
});
|
||||
}
|
||||
@@ -185,6 +193,37 @@ sub deploy_oui {
|
||||
say 'OUI update complete.';
|
||||
}
|
||||
|
||||
# This subroutine is from Wireshark's make-manuf
|
||||
# http://anonsvn.wireshark.org/wireshark/trunk/tools/make-manuf
|
||||
sub shorten {
|
||||
my $manuf = shift;
|
||||
|
||||
$manuf = decode "utf8", $manuf, Encode::FB_CROAK;
|
||||
$manuf = " " . $manuf . " ";
|
||||
|
||||
# Remove any punctuation
|
||||
$manuf =~ tr/',.()/ /;
|
||||
|
||||
# & isn't needed when Standalone
|
||||
$manuf =~ s/ \& / /g;
|
||||
|
||||
# Remove any "the", "inc", "plc" ...
|
||||
$manuf
|
||||
=~ s/\s(the|inc|incorporated|plc||systems|corp|corporation|s\/a|a\/s|ab|ag|kg|gmbh|co|company|limited|ltd|holding|spa)(?= )//gi;
|
||||
|
||||
# Convert to consistent case
|
||||
$manuf =~ s/(\w+)/\u\L$1/g;
|
||||
|
||||
# Remove all spaces
|
||||
$manuf =~ s/\s+//g;
|
||||
|
||||
# Truncate all names to a reasonable length, say, 8 characters.
|
||||
# If the string contains UTF-8, this may be substantially more than 8 bytes.
|
||||
$manuf = substr( $manuf, 0, 8 );
|
||||
|
||||
return encode( "utf8", $manuf );
|
||||
}
|
||||
|
||||
sub deploy_mibs {
|
||||
my $mibhome = dir(shift);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user