如何从 docker 容器获取远程机器的 MAC 地址

How to fetch MAC address of remote machine from docker container

我正在使用 python:3.6-alpine docker 容器。
我有一个网络服务,可以找到提供的 IP 地址的 MAC 地址。 要查找给定远程 machine 的 mac 地址,请说 host=10.11.15.100 我正在使用 python3 脚本下方。

import getmac 
mac_address = getmac.get_mac_address(ip=host)

当我在本地 运行 这个脚本时,它会给出所提供主机的正确 mac 地址。 但是当我 运行 它在 docker 容器中时它给出 None.
注意:- 我能够从 docker 容器中 ping 给定主机,但无法获得 mac 地址。

使用此命令获取容器的 Mac 地址

docker container inspect -f {{.NetworkSettings.MacAddress}} container-id

如果您能够从 docker 容器 ping 给定的远程 machine 但无法获得 mac 地址,这意味着

  1. MAC地址在路由中不可用table
  2. 主机网络接口在 Docker 容器内不可用。

对于第一种情况,您可以 ping machine,它可以在路由 table.
中添加 machine 的 MAC 地址 对于 #2 情况,您可以将主机网络接口添加到 Docker 容器。

例如。 docker run --network="host" -it network_service:latest