您的位置:首页 > 产品设计 > UI/UE

提取MAC地址OUI对应的厂商信息

2013-12-11 00:00 274 查看
摘要: 最近需要提取MAC地址中OUI(前6位)对应的厂商信息,通过搜索在IEEE的官网上找到OUI与厂商和地址的映射文件,下文记录下提取方法.
学习笔记,以备查阅.

前言

最近需要提取MAC地址中OUI(前6位)对应的厂商信息,通过搜索在IEEE的官网上找到OUI与厂商和地址的映射文件,下文记录下提取方法.

学习笔记,以备查阅.

@Author duangr

@Website http://my.oschina.net/duangr/blog/183789

1. IEEE OUI文件

http://standards.ieee.org/develop/regauth/oui/oui.txt

OUI				Organization
company_id			Organization
Address

00-00-00   (hex)		XEROX CORPORATION
000000     (base 16)		XEROX CORPORATION
M/S 105-50C
800 PHILLIPS ROAD
WEBSTER NY 14580
UNITED STATES

00-00-01   (hex)		XEROX CORPORATION
000001     (base 16)		XEROX CORPORATION
ZEROX SYSTEMS INSTITUTE
M/S 105-50C 800 PHILLIPS ROAD
WEBSTER NY 14580
UNITED STATES

.......


将文件下载下来,上传到服务器上, 文件名为 oui.txt

2. 提取OUI与厂商的映射

从文件中grep hex 提取 00-00-00 对应的厂商信息

cat oui.txt |grep hex > MAC_original.file


通过如下脚本,处理文件格式

#!/bin/sh
SRC_FILE=MAC_original.file
TGT_FILE=MAC_out.log

rm ${TGT_FILE}

declare -l str_l
cat ${SRC_FILE} |grep -v "^#" | while read line;
do
str_l=${line:0:8}
mac=`echo ${str_l} | awk -F"-" '{print $1":"$2":"$3}'`
echo "${mac}^A${line:18}" >> ${TGT_FILE}
done


将上面代码写入脚本执行后,生成格式化后的文件 MAC_out.

P.S. 其中^A 为"Ctrl+V" "Ctrl+A" 输入

3. 处理后的数据

00-00-00^AXEROX CORPORATION
00-00-01^AXEROX CORPORATION
00-00-02^AXEROX CORPORATION
00-00-03^AXEROX CORPORATION
00-00-04^AXEROX CORPORATION
00-00-05^AXEROX CORPORATION
...


数据有了,后面是导入到数据库中还是存储到HDFS中,就看个人喜好了.

4. 相关链接

Linux

shell
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IEEE OUI shell Linux