Как использовать интерфейсы INetFw для нескольких сетевых подключений?

Windows XP машина имеет проводной и Wi-Fi интерфейсы одновременно. Мой код должен управлять настройками брандмауэра только для соединения WiFi и игнорировать настройки для проводного соединения.

Я использую интерфейсы INetFw из C#. Я могу перечислить открытые порты и службы, как это...

    INetFwMgr manager = GetFirewallManager();
    INetFwPolicy policy = manager.LocalPolicy;
    INetFwProfile profile = policy.CurrentProfile;

    foreach (INetFwOpenPort p in profile.GloballyOpenPorts)...
    foreach (INetFwService s in services)...
        foreach (INetFwOpenPort p in s.GloballyOpenPorts)

Когда я добавляю исключения в панель управления для всех соединений, я вижу их в своем коде. Но исключения, добавленные для определенного соединения на вкладке "Дополнительно" панели управления, не видны моему коду.

Я не вижу, как убедиться, что отверстия в проводном соединении не открыты в соединении WiFi. Я хочу открыть только несколько портов в соединении WiFi.

Я что-то упускаю в API-интерфейсах INetFw, чтобы выбрать, каким соединением я хочу управлять?

1 ответ

Нашел ответ...

INetFwMgr предоставляет только глобальные настройки брандмауэра.

Настройки, соответствующие вкладке "Дополнительно" панели управления, отображаются в интерфейсе INetSharingManager.

Очевидно, мне нужно использовать оба интерфейса, чтобы знать полную конфигурацию брандмауэра.

Другие вопросы по тегам