Туннель программного сетевого интерфейса на локальный хост в OSX

Я хочу убедиться, что моя программа мониторинга сети на Mac может обрабатывать сетевые интерфейсы, которые приходят и уходят. Например, пользователь может подключить адаптер Wi-Fi через Thunderbolt, и моя программа должна это заметить.

Итак, я настроил сервер Python для работы на localhost:8000. Запуск wget http://localhost:8000 в командной строке дает мне правильный ответ от сервера Python. Прямая связь с локальным хостом прошла успешно. Все идет нормально.

Далее я написал скрипт на Python, настроив программный сетевой интерфейс, туннелируя трафик с 10.0.2.1 на localhost. Однако туннель явно настроен неправильно, потому что скрипт зависает на части wget:

import os
try:
    os.system("ifconfig gif6 create")
    os.system("ifconfig gif6 inet 10.0.2.1 127.0.0.1 up")
    os.system("wget http://10.0.2.1:8000")
finally:
    os.system("ifconfig gif6 destroy")

Что я делаю не так, пытаясь настроить туннель 10.0.2.1‹->127.0.0.1? Вероятно, что-то не так в ifconfig команды, но я не могу понять это.


person Juuso Ohtonen    schedule 19.09.2016    source источник
comment
Мне удалось обойти проблему с драйвером TUN/TAP: stackoverflow.com/a/15139727/1097104   -  person Juuso Ohtonen    schedule 20.09.2016