Как получить MAC-адрес удаленного компьютера из Docker-контейнера - PullRequest
0 голосов
/ 08 января 2019

Я использую python:3.6-alpine Docker-контейнер.
У меня есть сетевой сервис, который находит MAC-адрес предоставленного IP-адреса. Чтобы найти MAC-адрес данного удаленного компьютера, скажите host=10.11.15.100 Я использую ниже скрипт python3.

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

Когда я запускаю этот скрипт локально, он выдает правильный mac-адрес указанного хоста. Но когда я запускаю его в Docker-контейнере, он выдает None.
Примечание: - Я могу пропинговать указанный хост из контейнера докера, но не могу получить MAC-адрес.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Если вы можете пропинговать данную удаленную машину из док-контейнера, но не можете получить MAC-адрес, это означает либо

  1. MAC-адрес недоступен в таблице маршрутизации
  2. Сетевой интерфейс хоста недоступен внутри контейнера Docker.

В случае № 1 вы можете пропинговать машину, которая может добавить MAC-адрес этой машины в таблицу маршрутизации.
В случае №2 вы можете добавить сетевой интерфейс хоста в контейнер Docker.

например. docker run --network="host" -it network_service:latest

0 голосов
/ 08 января 2019

Используйте эту команду, чтобы получить MacAddress вашего контейнера

docker container inspect -f {{.NetworkSettings.MacAddress}} container-id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...