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:
parent
4f7fc21708
commit
0b5791b08d
|
@ -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
|
||||
|
|
309
manuf.tmpl
309
manuf.tmpl
|
@ -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(?)
|
|
@ -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))
|
||||
|
|
Loading…
Reference in New Issue