manuf: Drop Cavebear OUI list

The cavebear OUI list is hopelessly outdated (last updated 1999?)
and our template file mostly contains obsolete or poorly formatted
entries, compared to the official IEEE registry. We should rely on
the official registry, which is the best and most up-to-date source,
despite some minor inconsistencies and glitches.

Remove the template file and use the IEEE registry exclusively.
This commit is contained in:
João Valverde 2023-07-09 00:02:15 +01:00
parent 4f7fc21708
commit 0b5791b08d
4 changed files with 288 additions and 676 deletions

View File

@ -65,11 +65,6 @@ indent_size = 4
indent_style = space
indent_size = 4
# manuf
[manuf.tmpl]
indent_style = tab
indent_size = 8
# C/C++/Objective C
[*.{c,cpp,h,m}]
indent_style = space

526
manuf

File diff suppressed because it is too large Load Diff

View File

@ -1,309 +0,0 @@
#
# /etc/manuf - Ethernet vendor codes, and well-known MAC addresses
#
# Laurent Deniel <laurent.deniel [AT] free.fr>
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald [AT] wireshark.org>
# Copyright 1998 Gerald Combs
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
# The data below has been assembled from the following sources:
#
# The IEEE public OUI listings available from:
# <http://standards-oui.ieee.org/oui/oui.csv>
# <http://standards-oui.ieee.org/cid/cid.csv>
# <http://standards-oui.ieee.org/iab/iab.csv>
# <http://standards-oui.ieee.org/oui28/mam.csv>
# <http://standards-oui.ieee.org/oui36/oui36.csv>
#
# Michael Patton's "Ethernet Codes Master Page" available from:
# <http://www.cavebear.com/archive/cavebear/Ethernet/Ethernet.txt>
# Many people contributed to Michael's list. See the "Acknowledgements"
# section on that page for a complete list.
#
# This is Wireshark 'manuf' file, which started out as a subset of Michael
# Patton's list and grew from there. The Wireshark list and Michael's list
# were merged in 2016.
#
# In the event of data set collisions the Wireshark entries have been given
# precedence, followed by Michael Patton's, followed by the IEEE.
#
# This file is in the same format as ethers(4) except that vendor names
# are truncated to eight characters when used with Wireshark, and
# that well-known MAC addresses need not have a full 6 octets and may
# have a netmask following them specifying how many bits of the address
# are relevant (the other bits are wildcards). Also, either ":", "-",
# or "." can be used to separate the octets.
#
# You can get the latest version of this file from
# https://gitlab.com/wireshark/wireshark/-/raw/master/manuf
00:00:00 00:00:00 Officially Xerox, but 0:0:0:0:0:0 is more common
00:00:09 Powerpip powerpipes?
00:00:18 WebsterC Webster Computer Corporation # Appletalk/Ethernet Gateway
00:00:1B NovellNo Novell (now Eagle Technology)
00:00:23 AbbAutom ABB Automation AB, Dept. Q
00:00:4F Logicraf Logicraft 386-Ware P.C. Emulator
00:00:5A SkSchnei SK # (Schneider & Koch in Europe and Syskonnect outside of Europe)
00:00:6F MadgeNet Madge Networks Ltd. # Token-ring adapters
00:00:75 BellNort Bell Northern Research (BNR)
00:00:77 Interpha Interphase # [Used in other systems, e.g. MIPS, Motorola]
00:00:79 Networth Networth Incorporated # [bought by Compaq, used in Netelligent series]
00:00:7F Linotype Linotype-Hell AG # Linotronic typesetters
00:00:80 CrayComm Cray Communications (formerly Dowty Network Services) # [Also shows as "Harris (3M) (new)" and/or "Imagen(?)" elsewhere]
00:00:83 TadpoleT Tadpole Technology [had Optical Data Systems which is wrong according to both]
00:00:89 CaymanSy Cayman Systems # Gatorbox
00:00:94 AsanteMa Asante # MAC
00:00:A6 NetworkG Network General (internal assignment, not for products)
00:00:AA XeroxXer Xerox # Xerox machines
00:00:AC ConwareN Conware Netzpartner # [had Apollo, claimed incorrect]
00:00:B5 Databili Datability # Terminal Servers
00:00:B7 DoveFast Dove # Fastnet
00:00:BB Tri-Data TRI-DATA Systems Inc. # Netway products, 3274 emulators
00:00:C0 WesternD Western Digital now SMC (Std. Microsystems Corp.)
00:00:C6 HpIntell HP Intelligent Networks Operation (formerly Eon Systems)
00:00:C9 EmulexTe Emulex # Terminal Servers, Print Servers
00:00:D1 Adaptec Adaptec, Inc. # "Nodem" product
00:00:D7 Dartmout Dartmouth College (NED Router)
00:00:D8 OldNovel old Novell NE1000's (before about 1987?) (also 3Com)
00:00:EE NetworkD Network Designers Limited [also KNX Ltd, a former division]
00:00:F2 SpiderCo Spider Communications # (Montreal, not Spider Systems)
00:00:F3 GandalfD Gandalf Data Ltd. - Canada
00:00:FD HighLeve High Level Hardware (Orion, UK)
00:01:43 Ieee802 IEEE 802
00:01:63 NdcNatio NDC (National Datacomm Corporation)
00:02:16 EsiExten ESI (Extended Systems, Inc) # print servers
00:02:88 GlobalVi Global Village (PCcard in Mac portable)
00:04:00 LexmarkP Lexmark (Print Server)
00:04:AC IbmPcmci IBM # PCMCIA Ethernet adapter.
00:05:02 ApplePci Apple (PCI bus Macs)
00:06:29 IbmRisc6 IBM RISC6000 system
00:07:0D Cisco251 Cisco # 2511 Token Ring
00:10:07 CiscoSys Cisco Systems # Catalyst 1900
00:10:0D CiscoSys Cisco Systems # Catalyst 2924-XL
00:10:11 CiscoSys Cisco Systems # Cisco 75xx
00:10:1F CiscoSys Cisco Systems # Catalyst 2901
00:10:29 CiscoSys Cisco Systems # Catalyst 5000
00:10:2F CiscoSys Cisco Systems # Cisco 5000
00:10:4B 3com3c90 3Com # 3C905-TX PCI
00:10:5A 3comFast 3Com # Fast Etherlink XL in a Gateway 2000
00:10:60 Billingt Billington # Novell NE200 Compatible
00:10:79 Cisco550 Cisco # 5500 Router
00:10:7A AmbicomW Ambicom (was Tandy?)
00:10:83 Hp-UxE90 HP-UX E 9000/889
00:10:A4 XircomRe Xircom # RealPort 10/100 PC Card
00:10:D7 ArgosyEn Argosy # EN 220 Fast Ethernet PCMCIA
00:20:00 LexmarkP Lexmark (Print Server)
00:20:25 ControlT Control Technology Inc (Industrial Controls and Network Interfaces)
00:20:29 Teleproc TeleProcessing CSU/DSU (now owned by ADC/Kentrox)
00:20:2B AtmlAdva ATML (Advanced Telecommunications Modules, Ltd.)
00:20:35 IbmInter IBM (International Business Machines) # mainframes, Etherjet printers
00:20:61 Dynatech Dynatech Communications Inc
00:20:67 NodeRunn Node Runner Inc
00:20:A6 Proxim Proxim Inc
00:20:C5 EagleNe2 Eagle NE2000
00:20:D0 Versalyn Versalynx Corp. # "The One Port" terminal server
00:20:D3 OstOuetS OST (Ouet Standard Telematique)
00:20:E5 ApexData Apex Data
00:20:F6 NetTekKa Net Tek & Karlnet Inc
00:40:01 ZeroOneT Zero One Technology Co Ltd (ZyXEL?)
00:40:0D LannetDa LANNET Data Communications
00:40:10 SonicMac Sonic # Mac Ethernet interfaces
00:40:13 NttDataC NTT Data Communication Systems Corp
00:40:1C AstPenti AST # Pentium/90 PC (emulating AMD EISA card)
00:40:27 SmcMassa SMC Massachusetts # [Had:Sigma (?), maybe the "S"?]
00:40:2A Canoga-P Canoga-Perkins
00:40:2F XlntDesi Xlnt Designs Inc (XDI)
00:40:43 NokiaDat Nokia Data Communications
00:40:4D Telecomm Telecomm Techniques
00:40:54 Thinking Thinking Machines Corporation
00:40:72 AppliedI Applied Innovation
00:40:88 MobuisNu Mobuis # NuBus (Mac) combination video/EtherTalk
00:40:90 AnselCom Ansel Communications # PC NE2000 compatible twisted-pair ethernet cards
00:40:9D Digiboar DigiBoard # Ethernet-ISDN bridges
00:40:A6 CrayRese Cray Research Inc.
00:40:AA ValmetAu Valmet Automation Inc
00:40:AF DigitalP Digital Products, Inc. (DPI).
00:40:C5 MicomCom Micom Communications Corp.
00:40:C8 MilanTec Milan Technology Corp.
00:40:CC SilcomMa Silcom Manufacturing Technology Inc
00:40:EA Plaintre PlainTree Systems Inc
00:40:ED NetworkC Network Controls International Inc
00:40:F0 Micro Micro Systems Inc
00:40:FB CascadeC Cascade Communications Corp.
00:40:FF TelebitC Telebit Corporation # Personal NetBlazer
00:48:54 DigitalS Digital SemiConductor # 21143/2 based 10/100
00:4F:49 Realtek
00:4F:4B PineTech Pine Technology Ltd.
00:50:04 3com3c90 3com # 3C90X
00:55:00 Xerox Xerox Corporation
00:60:08 3com 3Com # 3Com PCI form factor 3C905 TX board
00:60:09 CiscoCat Cisco # Catalyst 5000 Ethernet switch
00:60:25 ActiveIm Active Imaging Inc.
00:60:30 Villaget VillageTronic # used on Amiga
00:60:3E Cisco100 Cisco # 100Mbps interface
00:60:4E CycleCom Cycle Computer (Sun MotherBoard Replacements)
00:60:67 AcerLan Acer Lan
00:60:70 CiscoRou Cisco # routers (2524 and 4500)
00:60:83 Cisco362 Cisco Systems, Inc. # 3620/3640 routers
00:60:8C 3com1990 3Com (1990 onwards)
00:60:94 AmdPcnet AMD PCNET PCI
00:80:04 AntlowCo Antlow Computers, Ltd.
00:80:09 JupiterO Jupiter Systems (older MX-600 series machines)
00:80:0D Vosswink Vosswinkel FU
00:80:10 Commodor Commodore
00:80:12 ImsImsFa IMS Corp. # IMS failure analysis tester
00:80:13 ThomasCo Thomas Conrad Corp.
00:80:16 WandelGo Wandel & Goltermann
00:80:19 DaynaCom Dayna Communications # "Etherprint" product
00:80:2D Xylogics Xylogics, Inc. # Annex terminal servers
00:80:35 Technolo Technology Works
00:80:37 Ericsson Ericsson Business Comm.
00:80:42 ForceCom Force Computers
00:80:48 CompexUs Compex, used by Commodore and DEC at least
00:80:51 AdcFiber ADC Fibermux
00:80:5A TulipCom Tulip Computers International BV
00:80:5C Agilis Agilis
00:80:63 RichardH Richard Hirschmann Gmbh & Co
00:80:6C CegelecP Cegelec Projects Ltd
00:80:8A Summit Summit
00:80:8C Netscout Netscout Systems (formerly Frontier Software Development)
00:80:8D Westcove Westcove Technology BV
00:80:9F AlcatelB Alcatel Business Systems
00:80:A1 Microtes Microtest
00:80:A3 Lantroni Lantronix # (see also 0800A3)
00:80:B2 NetNetwo NET (Network Equipment Technologies)
00:80:B6 Themis Themis corporation
00:80:C0 PenrilDa Penril Datability Networks
00:80:C2 Ieee8021 IEEE # 802.1 Committee
00:80:C7 Xircom Xircom, Inc.
00:80:C8 D-LinkAl D-Link # (also Solectek Pocket Adapters, and LinkSys PCMCIA)
00:80:D0 Computer Computer Products International
00:80:D3 ShivaApp Shiva # Appletalk-Ethernet interface
00:80:D4 Chase Chase Limited
00:80:D7 FantumEl Fantum Electronics
00:80:D8 NetworkP Network Peripherals
00:80:DA BruelKja Bruel & Kjaer
00:80:E3 Coral Coral
00:80:F4 Telemech Telemechanique Electrique
00:80:F7 ZenithCo Zenith Communications Products
00:90:2B CiscoEth Cisco # Ethernet Switches and Light Streams
00:90:F2 CiscoEth Cisco # Ethernet Switches and Light Streams
00:A0:0C KingmaxT Kingmax Technology Inc. # PCMCIA card
00:A0:40 ApplePci Apple (PCI Mac)
00:A0:C9 IntelPro Intel (PRO100B and PRO100+) # [used on Cisco PIX firewall among others]
00:A0:CC Lite-OnU Lite-On # (used by MacSense in Adapter for Mac, also seen in PCs)
00:A0:D2 AlliedTe Allied Telesyn
00:B0:D0 Computer Computer Products International
00:C0:05 Livingst Livingston Enterprises Inc # Portmaster (OEMed by Cayman)
00:C0:09 KtTechno KT Technology (s) Pte Inc
00:C0:0F QnxSoftw QNX Software Systems Ltd. # [also Quantum Software Systems Ltd]
00:C0:12 Netspan Netspan Corp
00:C0:14 Telemati Telematics Calabasas
00:C0:15 NewMedia New Media Corp
00:C0:18 Lanart Lanart Corp
00:C0:1B SocketCo Socket Communications
00:C0:1D GrandJun Grand Junction Networks, Inc. # (Cisco Catalyst also reported)
00:C0:2A OhkuraEl Ohkura Electric Co
00:C0:2F Okuma Okuma Corp
00:C0:33 Telebit Telebit Corporation
00:C0:45 Isolatio Isolation Systems Inc
00:C0:49 UsRoboti US Robotics Total Control (tm) NETServer Card
00:C0:4D Mitec Mitec Ltd
00:C0:60 IdScandi ID Scandinavia A/S
00:C0:63 MorningS Morning Star Technologies Inc # May be miswrite of 0003C6
00:C0:64 GeneralD General Datacomm Ind Inc
00:C0:6A Zahner-E Zahner-Elektrik Gmbh & Co KG
00:C0:74 ToyodaAu Toyoda Automatic Loom Works Ltd
00:C0:7A PrivaBv Priva BV
00:C0:7B AscendCo Ascend Communications # ISDN bridges/routers
00:C0:85 Canon
00:C0:95 ZnyxNetw Znyx (Network Appliance); Jupiter Systems (MX-700); Apple (G3) all seen
00:C0:9B Reliance Reliance Comm/Tec, R-Tec Systems Inc
00:C0:C9 BaileyCo Bailey Controls Co
00:C0:D1 ComtreeT Comtree Technology Corporation (EFA also reported)
00:C0:D5 QuancomE Quancom Electronic Gmbh
00:C0:D9 QuinteNe Quinte Network Confidentiality Equipment Inc
00:C0:ED UsArmyEl US Army Electronic Proving Ground
00:C0:EE Kyocera Kyocera Corporation
00:C0:F0 Kingston Kingston Technology Corporation
00:C0:F2 Transiti Transition Engineering Inc
00:C0:FC Asdg ASDG Incorporated
00:DD:00 Ungerman Ungermann-Bass # IBM RT
00:E0:16 Rapid-Ci rapid-city (now a part of bay networks)
00:E0:18 AsustekI Asustek # Intel 82558-based Integrated Fast Ethernet for WIM
00:E0:29 SmcEther SMC EtherPower II 10/100
00:E0:2C Ast-Buil AST - built into 5166M PC motherboard (win95 id's as Intel)
00:E0:39 Paradyne Paradyne 7112 T1 DSU/CSU
00:E0:7D EncoreNe Encore (Netronix?) # 10/100 PCI Fast ethernet card
00:E0:81 TyanComp Tyan Computer Corp. # Onboard Intel 82558 10/100
00:E0:8F CiscoSys Cisco Systems # Catalyst 2900 series
00:E0:A3 CiscoSys Cisco Systems # Catalyst 1924
00:E0:B0 CiscoSys Cisco Systems # Various systems reported
00:E0:B8 AmdPcnet AMD PCNet # in a Gateway 2000
01:0E:CF PN-MC PROFINET Multicast
02:04:06 BbnInter BBN # internal usage (not registered)
02:20:48 Marconi # At least some 2810 send with locally assigned flag set
02:60:60 3com
02:60:8C 3comIbmP 3Com # IBM PC; Imagen; Valid; Cisco; Macintosh
02:A0:C9 Intel
02:CF:1F CMC
02:E0:3B Prominet Prominet Corporation # Gigabit Ethernet Switch
04:88:45 BayNetwo Bay Networks # token ring line card
08:00:05 Symbolic Symbolics # Symbolics LISP machines
08:00:06 SiemensN Siemens Nixdorf # PC clone
08:00:0B UnisysAl Unisys also Ascom-Timeplex (former Unisys subsidiary)
08:00:0D IclInter ICL (International Computers, Ltd.)
08:00:0E Ncr/At&T
08:00:10 At&T[Mis AT&T [misrepresentation of 800010?]
08:00:14 ExcelanB Excelan # BBN Butterfly, Masscomp, Silicon Graphics
08:00:17 National National Semiconductor Corp. (used to have Network System Corp., wrong NSC)
08:00:22 NbiNothi NBI (Nothing But Initials)
08:00:26 NorskDat Norsk Data (Nord)
08:00:27 PcsCompu PCS Computer Systems GmbH
08:00:28 TiExplor TI # Explorer
08:00:2F PrimeCom Prime Computer # Prime 50-Series LHC300
08:00:36 Intergra Intergraph # CAE stations
08:00:66 AgfaPrin AGFA # printers, phototypesetters etc.
08:00:75 DdeDanis DDE (Danish Data Elektronik A/S)
08:00:77 TslNowRe TSL (now Retix)
08:00:7C Vitalink Vitalink # TransLAN III
08:00:81 Crosfiel Crosfield Electronics
08:00:83 SeikoDen Seiko Denshi
08:00:86 Imagen/Q Imagen/QMS [Now Konica Minolta]
08:00:87 XyplexTe Xyplex # terminal servers
08:00:89 Kinetics Kinetics # AppleTalk-Ethernet interface
08:00:8D Xyvision XyVision # XyVision machines
08:00:8E Tandem/S Tandem / Solbourne Computer ?
09:00:6A AT&T
10:00:90 HP
10:00:D4 DEC
10:00:E0 AppleA/U Apple A/UX # (modified addresses for licensing)
2E:2E:2E LaaLocal LAA (Locally Administered Address) for Meditech Systems
3C:00:00 3Com
40:00:03 NetWare? Net Ware (?)
44:45:53 Microsoft
44:46:49 DfiDiamo DFI (Diamond Flower Industries)
47:54:43 GtcNotRe GTC (Not registered!) # (This number is a multicast!)
48:44:53 Hds??? HDS ???
48:4C:00 NetworkS Network Solutions
48:54:E8 Winbond?
4C:42:4C Informat Information Modes software modified addresses (not registered?)
52:54:00 RealtekU Realtek (UpTech? also reported)
52:54:4C Novell20 Novell 2000
52:54:AB RealtekA REALTEK (a Realtek 8029 based PCI Card)
56:58:57 AculabPl Aculab plc # audio bridges
80:00:10 At&T[Mis AT&T [misrepresented as 080010? One source claims this is correct]
80:AD:00 CnetTech CNET Technology Inc. (Probably an error, see instead 0080AD)
AA:00:00 DecObsol DEC # obsolete
AA:00:01 DecObsol DEC # obsolete
AA:00:02 DecObsol DEC # obsolete
AA:00:03 DecGloba DEC # Global physical address for some DEC machines
AA:00:04 DecLocal DEC # Local logical address for DECNET systems
C0:00:00 WesternD Western Digital (may be reversed 00 00 C0?)
DC:87:CB Perfectk Beijing Perfectek Technologies Co., Ltd.
E2:0C:0F Kingston Kingston Technologies
EC:10:00 EnanceSo Enance Source Co., Ltd. # PC clones(?)

View File

@ -8,15 +8,7 @@
'''Update the "manuf" file.
Make-manuf creates a file containing ethernet OUIs and their company
IDs. It merges the databases at IEEE with entries in our template file.
Our file in turn contains entries from
http://www.cavebear.com/archive/cavebear/Ethernet/Ethernet.txt along
with our own.
The script reads the comments at the top of "manuf.tmpl" and writes them
to "manuf". It then joins the manufacturer listing in "manuf.tmpl" with
the listing in "oui.txt", "iab.txt", etc, with the entries in
"manuf.tmpl" taking precedence.
IDs from the databases at IEEE.
'''
import csv
@ -47,15 +39,24 @@ def open_url(url):
str in Python 3 and bytes in Python 2 in order to be compatibile with
csv.reader.
'''
req_headers = { 'User-Agent': 'Wireshark make-manuf' }
try:
req = urllib.request.Request(url, headers=req_headers)
response = urllib.request.urlopen(req)
body = response.read().decode('UTF-8', 'replace')
except Exception:
exit_msg('Error opening ' + url)
return (body, dict(response.info()))
if len(sys.argv) > 1:
url_path = os.path.join(sys.argv[1], url[1])
url_fd = open(url_path)
body = url_fd.read()
url_fd.close()
else:
url_path = '/'.join(url)
req_headers = { 'User-Agent': 'Wireshark make-manuf' }
try:
req = urllib.request.Request(url_path, headers=req_headers)
response = urllib.request.urlopen(req)
body = response.read().decode('UTF-8', 'replace')
except Exception:
exit_msg('Error opening ' + url_path)
return body
# These are applied after punctuation has been removed.
# More examples at https://en.wikipedia.org/wiki/Incorporation_(business)
@ -181,49 +182,22 @@ def prefix_to_oui(prefix):
def main():
this_dir = os.path.dirname(__file__)
template_path = os.path.join(this_dir, '..', 'manuf.tmpl')
manuf_path = os.path.join(this_dir, '..', 'manuf')
header_l = []
in_header = True
ieee_d = {
'OUI': { 'url': "https://standards-oui.ieee.org/oui/oui.csv", 'min_entries': 1000 },
'CID': { 'url': "https://standards-oui.ieee.org/cid/cid.csv", 'min_entries': 75 },
'IAB': { 'url': "https://standards-oui.ieee.org/iab/iab.csv", 'min_entries': 1000 },
'OUI28': { 'url': "https://standards-oui.ieee.org/oui28/mam.csv", 'min_entries': 1000 },
'OUI36': { 'url': "https://standards-oui.ieee.org/oui36/oui36.csv", 'min_entries': 1000 },
'OUI': { 'url': ["https://standards-oui.ieee.org/oui/", "oui.csv"], 'min_entries': 1000 },
'CID': { 'url': ["https://standards-oui.ieee.org/cid/", "cid.csv"], 'min_entries': 75 },
'IAB': { 'url': ["https://standards-oui.ieee.org/iab/", "iab.csv"], 'min_entries': 1000 },
'OUI28': { 'url': ["https://standards-oui.ieee.org/oui28/", "mam.csv"], 'min_entries': 1000 },
'OUI36': { 'url': ["https://standards-oui.ieee.org/oui36/", "oui36.csv"], 'min_entries': 1000 },
}
oui_d = {}
hp = "[0-9a-fA-F]{2}"
manuf_re = re.compile(r'^({}:{}:{})\s+(\S.*)$'.format(hp, hp, hp))
min_total = 35000; # 35830 as of 2018-09-05
tmpl_added = 0
total_added = 0
# Write out the header and populate the OUI list with our entries.
try:
tmpl_fd = io.open(template_path, 'r', encoding='UTF-8')
except Exception:
exit_msg("Couldn't open template file for reading ({}) ".format(template_path))
for tmpl_line in tmpl_fd:
tmpl_line = tmpl_line.strip()
m = manuf_re.match(tmpl_line)
if not m and in_header:
header_l.append(tmpl_line)
elif m:
in_header = False
oui = m.group(1).upper()
oui_d[oui] = m.group(2)
tmpl_added += 1
tmpl_fd.close()
total_added += tmpl_added
# Add IEEE entries from each of their databases
ieee_db_l = list(ieee_d.keys())
ieee_db_l.sort()
ieee_db_l = ['OUI', 'OUI28', 'OUI36', 'CID', 'IAB']
for db in ieee_db_l:
db_url = ieee_d[db]['url']
@ -231,10 +205,8 @@ def main():
ieee_d[db]['added'] = 0
ieee_d[db]['total'] = 0
print('Merging {} data from {}'.format(db, db_url))
(body, response_d) = open_url(db_url)
body = open_url(db_url)
ieee_csv = csv.reader(body.splitlines())
ieee_d[db]['last-modified'] = response_d['Last-Modified']
ieee_d[db]['length'] = response_d['Content-Length']
# Pop the title row.
next(ieee_csv)
@ -247,14 +219,6 @@ def main():
manuf = html.unescape(manuf)
if oui in oui_d:
action = 'Skipping'
try:
manuf_stripped = re.findall('[a-z]+', manuf.lower())
tmpl_manuf_stripped = re.findall('[a-z]+', oui_d[oui].split('\t')[-1].strip().lower())
if manuf_stripped == tmpl_manuf_stripped:
action = 'Skipping duplicate'
except IndexError:
pass
print('{} - {} IEEE "{}" in favor of "{}"'.format(oui, action, manuf, oui_d[oui]))
ieee_d[db]['skipped'] += 1
else:
@ -277,15 +241,42 @@ def main():
exit_msg("Couldn't open manuf file for reading ({}) ".format(manuf_path))
manuf_fd.write("# This file was generated by running ./tools/make-manuf.py.\n")
manuf_fd.write("# Don't change it directly, change manuf.tmpl instead.\n#\n")
manuf_fd.write('\n'.join(header_l))
manuf_fd.write(
'''#
# /etc/manuf - Ethernet vendor codes, and well-known MAC addresses
#
# Laurent Deniel <laurent.deniel [AT] free.fr>
#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald [AT] wireshark.org>
# Copyright 1998 Gerald Combs
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
# The data below has been assembled from the following sources:
#
# The IEEE public OUI listings available from:
# <http://standards-oui.ieee.org/oui/oui.csv>
# <http://standards-oui.ieee.org/cid/cid.csv>
# <http://standards-oui.ieee.org/iab/iab.csv>
# <http://standards-oui.ieee.org/oui28/mam.csv>
# <http://standards-oui.ieee.org/oui36/oui36.csv>
#
# This file is in the same format as ethers(4) except that vendor names
# are truncated to eight characters when used with Wireshark, and
# that well-known MAC addresses need not have a full 6 octets and may
# have a netmask following them specifying how many bits of the address
# are relevant (the other bits are wildcards). Also, either ":", "-",
# or "." can be used to separate the octets.
#
# You can get the latest version of this file from
# https://gitlab.com/wireshark/wireshark/-/raw/master/manuf
''')
for db in ieee_db_l:
manuf_fd.write(
'''\
# {url}:
# Content-Length: {length}
# Last-Modified: {last-modified}
'''.format( **ieee_d[db]))
@ -296,7 +287,6 @@ def main():
manuf_fd.close()
print('{:<20}: {}'.format('Original entries', tmpl_added))
for db in ieee_d:
print('{:<20}: {}'.format('IEEE ' + db + ' added', ieee_d[db]['added']))
print('{:<20}: {}'.format('Total added', total_added))