MAC地址研究——OUI注册数量国家排名

数据预处理

oui.txt获取

wget http://standards-oui.ieee.org/oui/oui.txt

CSDN资源中心备份的当时oui文件, oui.txt 2020年2月3日内容

获取国家数据

out.txt 文件原始内容

OUI/MA-L                                                    Organization
company_id                                                  Organization
                                                            Address

00-22-72   (hex)                American Micro-Fuel Device Corp.
002272     (base 16)            American Micro-Fuel Device Corp.
                                2181 Buchanan Loop
                                Ferndale  WA  98248
                                US

00-D0-EF   (hex)                IGT
00D0EF     (base 16)            IGT
                                9295 PROTOTYPE DRIVE
                                RENO  NV  89511
                                US

egrep  "^\s+[A-Z]{2}$" oui.txt 

按照设想应该可以过滤出,只包含两个大写字母的国家代码行,执行后无结果

cat -A oui.txt 

猜测存在不可见字符,执行上述命令后,可见行尾包含 ^M不可见字符

OUI/MA-L                                                    Organization                                 ^M$
company_id                                                  Organization                                 ^M$
                                                            Address                                      ^M$
^M$
00-22-72   (hex)^I^IAmerican Micro-Fuel Device Corp.^M$
002272     (base 16)^I^IAmerican Micro-Fuel Device Corp.^M$
^I^I^I^I2181 Buchanan Loop^M$
^I^I^I^IFerndale  WA  98248^M$
^I^I^I^IUS^M$
^M$
00-D0-EF   (hex)^I^IIGT^M$
00D0EF     (base 16)^I^IIGT^M$
^I^I^I^I9295 PROTOTYPE DRIVE^M$
^I^I^I^IRENO  NV  89511^M$
^I^I^I^IUS^M$
^M$
yum install -y dos2unix  
dos2unix oui.txt

上述命令处理后可清楚^M不可见字符,参考文章如下https://www.cnblogs.com/czalinux/p/6668236.html#/c/subject/p/6668236.html

egrep  "^\s+[A-Z]{2}$" oui.txt > /tmp/oui_country.txt

上述命令可以得到只包含国家代码的行,oui_country.txt文件样例

[root@test100 tmp]# vim oui_country.txt 

                                US
                                US
                                US
                                US
                                CN
                                CN
                                CA
                                CA
                                AU

排名统计

可选统计方案

统计方法参考文章
https://stackoverflow.com/questions/10286522/group-by-sum-from-shell

准备尝试termsql方案:更具通用性、模式更符合习惯

termsql方案

termsql安装

  1. 升级Python
wget https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tar.xz
tar -xvf Python-3.8.7.tar.xz
yum install libffi-devel -y #termsql需要,且安装完后还需要重新编译安装Python
./configure
make
make install
  1. 安装termsql
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
pip3 install termsql

统计数据

[root@test100 tmp]# cat oui_country.txt | termsql "SELECT col0, count(col0) c FROM tbl GROUP BY col0 order by c desc"
US|10326
CN|5401
KR|2294
TW|1975
JP|1669

统计结果可见,OUI注册量第一个的是美国,第二是中国,KR是韩国,后续可以周期性统计这个数据看看排名会不会有变化

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值