erlang如何获取本机MAC地址?

简介: erlang如何获取本机MAC地址?

使用命令inet:getifaddrs().


详情见:http://erlang.org/doc/man/inet.html ,官方定义如下:

getifaddrs() -> {ok, Iflist} | {error, posix()}

Types

Iflist = [{Ifname, [Ifopt]}]

Ifname = string()

Ifopt =

   {flags, [Flag]} |

   {addr, Addr} |

   {netmask, Netmask} |

   {broadaddr, Broadaddr} |

   {dstaddr, Dstaddr} |

   {hwaddr, Hwaddr}

Flag =

   up | broadcast | loopback | pointtopoint | running | multicast

Addr = Netmask = Broadaddr = Dstaddr = ip_address()

Hwaddr = [byte()]

Returns a list of 2-tuples containing interface names and the interface addresses. Ifname is a Unicode string. Hwaddr is hardware dependent, for example, on Ethernet interfaces it is the 6-byte Ethernet address (MAC address (EUI-48 address)).



咱自己实践了一下,如下所示,hwaddr就是MAC地址:


[root@localhost ~]# erl
Erlang/OTP 19 [erts-8.3] [source] [64-bit] [smp:2:2] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V8.3  (abort with ^G)
1> inet:getifaddrs().
{ok,[{"lo",
      [{flags,[up,loopback,running]},
       {hwaddr,[0,0,0,0,0,0]},
       {addr,{127,0,0,1}},
       {netmask,{255,0,0,0}},
       {addr,{0,0,0,0,0,0,0,1}},
       {netmask,{65535,65535,65535,65535,65535,65535,65535,
                 65535}}]},
     {"ens33",
      [{flags,[up,broadcast,running,multicast]},
       {hwaddr,[0,12,41,185,123,49]},
       {addr,{192,168,83,128}},
       {netmask,{255,255,255,0}},
       {broadaddr,{192,168,83,255}},
       {addr,{65152,0,0,0,8566,4963,38750,27671}},
       {netmask,{65535,65535,65535,65535,0,0,0,0}}]},
     {"virbr0",
      [{flags,[up,broadcast,running,multicast]},
       {hwaddr,[82,84,0,236,32,118]},
       {addr,{192,168,122,1}},
       {netmask,{255,255,255,0}},
       {broadaddr,{192,168,122,255}}]},
     {"virbr0-nic",
      [{flags,[broadcast,multicast]},
       {hwaddr,[82,84,0,236,32,118]}]}]}



相关文章
|
存储 网络协议 安全
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
176 0
|
缓存 网络协议 网络架构
以太网数据链路层、Ethernet_II帧格式、IEEE802.3帧格式,以太网的MAC地址的组成,ARP地址解析协议的工作原理,单播帧、组播帧、广播帧的区别
数据链路层,Ethernet_II帧格式、IEEE802.3帧格式,帧格式的区分以及链路层每种帧格式有什么作用,怎么区别分辨帧格式,以太网MAC地址的组成,ARP地址解析协议原理、什么是单播帧?什么是组播数据帧?什么是广播帧?...............
以太网数据链路层、Ethernet_II帧格式、IEEE802.3帧格式,以太网的MAC地址的组成,ARP地址解析协议的工作原理,单播帧、组播帧、广播帧的区别
|
网络协议
Qt获取本机IP、MAC、IPV6子网掩码等网络信息
Qt获取本机IP、MAC、IPV6子网掩码等网络信息
327 0
计算机网络学习13:MAC地址
如果信道上的主机只有两台(点对点信道)不需要地址
计算机网络学习13:MAC地址
|
存储 安全 iOS开发
iOS开发 - 继udid,Mac地址等一系列唯一标识无效后,如何用KeyChain来实现设备唯一性
iOS开发 - 继udid,Mac地址等一系列唯一标识无效后,如何用KeyChain来实现设备唯一性
479 0
iOS开发 - 继udid,Mac地址等一系列唯一标识无效后,如何用KeyChain来实现设备唯一性
|
Ubuntu 前端开发 Linux
mac 查看本机 ip
mac 查看本机 ip
4162 0
mac 查看本机 ip
|
域名解析 网络协议 测试技术
CCNA-思科网络基础(IP地址 MAC地址 DNS DHCP PING )
CCNA-思科网络基础(IP地址 MAC地址 DNS DHCP PING )
289 0
CCNA-思科网络基础(IP地址 MAC地址 DNS DHCP PING )
Office 2021 for Mac 简体中文 官网下载地址
Office 2021 for Mac 它包括 Word、Excel、PowerPoint 和 Outlook。一次性购买该产品可安装在一台 Mac 上,供家用或办公之用。
829 0
|
缓存 网络协议