Firewall Win2k/Vista
Нужно написать файрвол TCP/UDP под вин XP/Vista с интерфейсом управления в виде длл.
Нужнен запрет TCP и UDP соединений по портам и адресам, во любом направлении (исходящие=входящим). Система должна работать автономно, по последним заданным настройкам.
В длл - интерфейс управления этим.
Enable(bool bEnable); - вкл-выкл фв.
Reset(); - удаление всех настроек, т.е. запрет всех соединений.
Allow(PROTO p=TCP/UDP/ALL, FW_RANGE_ADDR addrs, FW_RANGE_PORT ports) - добавление разрешенных сочетаний протокол-адреса-порты.
struct FW_RANGE_ADDR
{
UINT start;
UINT stop;
}
struct FW_RANGE_PORT
{
USHORT start;
USHORT stop;
}
т.е. FW_RANGE_ADDR (1-1024) это диапазон адресов с 1 по 1024. (один адрес тоже представляется в виде пары, напр. 5555-5555)
После вызова Allow с параметрами UDP, 192.168.0.20-192.168.0.30, 2345-2345 должны пропускаться все соединения с компьютерами 192.168.0.20-192.168.0.30 по порту UDP 2345. Если [после Reset] больше ничего введено не было, то больше ничего работать и не должно, т.е. по-умолчанию все запрещено.