Как использовать интерфейсы INetFw для нескольких сетевых подключений? - PullRequest
1 голос
/ 29 февраля 2012

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 Ответ

0 голосов
/ 06 марта 2012

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

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

Параметры, соответствующие вкладке «Дополнительно» панели управления, отображаются в интерфейсе INetSharingManager.

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

...