Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Настройка брандмауэра Windows для доступа к FTP на Windows Vista/7

Delphi , ОС и Железо , Windows

В Windows Vista и Windows 7 была значительно улучшена система брандмауэра по сравнению с предыдущими версиями операционной системы. Однако, эти улучшения могут вызвать проблемы для программ, которые требуют доступа к сетевым ресурсам, таким как FTP. В данной статье мы рассмотрим, как настроить брандмауэр Windows для корректной работы программ, использующих FTP, в операционных системах Windows Vista и Windows 7.

Проблема с добавлением исключения в брандмауэр

Разработчики, использующие Delphi для создания приложений, могут столкнуться с проблемой, когда приложение не может получить доступ к FTP-серверу из-за настройки брандмауэра Windows. Пример кода, который добавляет исключение в брандмауэр, работает корректно в Windows XP, но в Windows Vista и Windows 7 приложение добавляется только в публичный профиль, что не позволяет ему доступ к FTP.

procedure AddExceptionToFirewall(Caption, Executable: String);
var
  FirewallMsg: OleVariant;
  Application: OleVariant;
  CurrentProfile: OleVariant;
begin
  FirewallMsg := CreateOLEObject('HNetCfg.FwMgr');
  CurrentProfile := FirewallMsg.LocalPolicy.CurrentProfile;
  Application := CreateOLEObject('HNetCfg.FwAuthorizedApplication');
  Application.ProcessImageFileName := Executable;
  Application.Name := Caption;
  Application.Scope := FW_SCOPE_ALL;
  Application.IpVersion := FW_IP_VERSION_ANY;
  Application.Enabled := True;
  CurrentProfile.AuthorizedApplications.Add(Application);
end;

Решение проблемы

Для корректной работы с брандмауэром Windows Vista и Windows 7 необходимо использовать интерфейсы INetFwPolicy2 и INetFwRule. Ниже приведен пример кода на Object Pascal (Delphi), который добавляет новое правило для публичного и приватного профилей.

procedure AddExceptionToFirewall(Const Caption, Executable: String);
const
  NET_FW_PROFILE2_DOMAIN = 1;
  NET_FW_PROFILE2_PRIVATE = 2;
  NET_FW_PROFILE2_PUBLIC = 4;
  NET_FW_IP_PROTOCOL_TCP = 6;
  NET_FW_ACTION_ALLOW = 1;
var
  fwPolicy2: OleVariant;
  RulesObject: OleVariant;
  Profile: Integer;
  NewRule: OleVariant;
begin
  Profile := NET_FW_PROFILE2_PRIVATE OR NET_FW_PROFILE2_PUBLIC;
  fwPolicy2 := CreateOleObject('HNetCfg.FwPolicy2');
  RulesObject := fwPolicy2.Rules;
  NewRule := CreateOleObject('HNetCfg.FWRule');
  NewRule.Name := Caption;
  NewRule.Description := Caption;
  NewRule.ApplicationName := Executable;
  NewRule.Protocol := NET_FW_IP_PROTOCOL_TCP;
  NewRule.Enabled := TRUE;
  NewRule.Profiles := Profile;
  NewRule.Action := NET_FW_ACTION_ALLOW;
  RulesObject.Add(NewRule);
end;

Важные замечания

При использовании приведенного кода важно понимать, что для его выполнения требуются права администратора. Также стоит отметить, что функция CreateOLEObject внутренне использует метод CoCreateInstance из WinAPI, и все ошибки обрабатываются с помощью метода OleCheck. В случае возникновения ошибки будет поднято исключение.

Заключение

Приложения, созданные с использованием Delphi, могут эффективно работать с брандмауэром Windows в операционных системах Windows Vista и Windows 7, если использовать правильные интерфейсы и следовать рекомендациям по настройке исключений. Это позволит обеспечить необходимый доступ к сетевым ресурсам, таким как FTP, и повысить удобство использования вашего приложения для конечных пользователей.

Создано по материалам из источника по ссылке.

Настройка брандмауэра Windows для корректной работы программ, использующих FTP, в операционных системах Windows Vista и Windows 7.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 23:07:20/0.0061600208282471/0