This file is indexed.

/usr/sbin/get-oui is in arp-scan 1.9-3.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#!/usr/bin/env perl
#
# Copyright 2006-2013 Roy Hills
#
# This file is part of arp-scan.
# 
# arp-scan is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# arp-scan is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with arp-scan.  If not, see <http://www.gnu.org/licenses/>.
#
# $Id: get-oui 19550 2013-04-15 09:24:42Z rsh $
#
# get-oui -- Fetch the OUI file from the IEEE website
#
# Author: Roy Hills
# Date: 16 March 2006
#
# This script downloads the Ethernet OUI file from the IEEE website, and
# converts it to the format needed by arp-scan.
#
use warnings;
use strict;
use Getopt::Std;
use LWP::Simple;
#
my $default_url = 'file://var/lib/ieee-data/oui.txt';
my $default_filename='ieee-oui.txt';
#
my $usage =
qq/Usage: get-oui [options]
Fetch the Ethernet OUI file from the IEEE website (on Debian and Debian based systems, 
data is fetched from ieee-data package), and save it in the format
used by arp-scan.

'options' is one or more of:
        -h Display this usage message.
        -f FILE Specify the output OUI file. Default=$default_filename
        -u URL Specify the URL to fetch the OUI data from.
           Default=$default_url
        -v Give verbose progress messages.
/;
my %opts;
my $verbose;
my $filename;
my $url;
my $lineno = 0;
#
# Process options
#
die "$usage\n" unless getopts('hf:u:v',\%opts);
if ($opts{h}) {
   print "$usage\n";
   exit(0);
}
if (defined $opts{f}) {
   $filename=$opts{f};
} else {
   $filename=$default_filename;
}
if (defined $opts{u}) {
   $url=$opts{u};
} else {
   $url=$default_url;
}
$verbose=$opts{v} ? 1 : 0;
#
# If the output filename already exists, rename it to filename.bak before
# we create the new output file.
#
if (-f $filename) {
   print "Renaming $filename to $filename.bak\n" if $verbose;
   rename $filename, "$filename.bak" || die "Could not rename $filename to $filename.bak\n";
}
#
# Fetch the content from the URL
#
print "Fetching OUI data from $url\n" if $verbose;
my $content = get $url;
die "Could not get OUI data from $url\n" unless defined $content;
my $content_length = length($content);
die "Zero-sized response from from $url\n" unless ($content_length > 0);
print "Fetched $content_length bytes\n" if $verbose;
#
# Open the output file for writing.
#
print "Opening output file $filename\n" if $verbose;
open OUTPUT, ">$filename" || die "Could not open $filename for writing";
#
# Write the header comments to the output file.
#
my ($sec,$min,$hour,$mday,$mon,$year,undef,undef,undef) = localtime();
$year += 1900;
$mon++;
my $date_string = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year, $mon, $mday,
                          $hour, $min, $sec);
my $header_comments =
qq/# ieee-oui.txt -- Ethernet vendor OUI file for arp-scan
#
# This file contains the Ethernet vendor OUIs for arp-scan.  These are used
# to determine the vendor for a give Ethernet interface given the MAC address.
#
# Each line of this file contains an OUI-vendor mapping in the form:
#
# <OUI><TAB><Vendor>
#
# Where <OUI> is the first three bytes of the MAC address in hex, and <Vendor>
# is the name of the vendor.
#
# Blank lines and lines beginning with "#" are ignored.
#
# This file was automatically generated by get-oui at $date_string
# using data from $url
#
# Do not edit this file.  If you want to add additional MAC-Vendor mappings,
# edit the file mac-vendor.txt instead.
#
/;
print OUTPUT $header_comments;
#
# Parse the content received from the URL, and write the OUI entries to the
# output file.  Match lines that look like this:
# 00-00-00   (hex)                XEROX CORPORATION
# and write them to the output file looking like this:
# 000000	XEROX CORPORATION
#
while ($content =~ m/^\s*(\w+)-(\w+)-(\w+)\s+\(hex\)\s+(.*)$/gm) {
   print OUTPUT "$1$2$3\t$4\n";
   $lineno++;
}
#
# All done.  Close the output file and print OUI entry count
#
close OUTPUT || die "Error closing output file\n";
print "$lineno OUI entries written to file $filename\n" if $verbose;