代码之家  ›  专栏  ›  技术社区  ›  Aetherus

如何从gen返回的套接字获取MAC地址_tcp:接受/1?

  •  0
  • Aetherus  · 技术社区  · 6 年前

    {:ok, server_socket} = :gen_tcp.listen(port)
    {:ok, client_socket} = :gen_tcp.accept(server_socket)
    

    client_socket ?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Sheharyar    6 年前

    Erlang提供 :inet.getifaddrs/0 获取接口名称及其地址的列表,但没有现成的方法允许您从套接字获取所连接主机或路由器的mac地址。

    问题是TCP独立于任何MAC层协议。在实际应用中,当使用以太网链路层时,TCP协议栈使用ARP来获取所连接主机或路由器的MAC。

    一些可能的解决方案是:

    • 与…的结果挂钩 ioctl SIOCGARP C 代码
    • System.cmd 得到一个shell程序的结果,比如 arp
        2
  •  1
  •   Roman Rabinovich    6 年前

    os:cmd("ip neighbor show").
    
    推荐文章