Требуется написать программу, которая будет разрешать/запрещать доступ определенным хостам в сети к моему компьютеру. Программа должна быть GUI. Сейчас я делаю так - для каждого хоста, у которого есть запрет, вызывается ipchains с помощью execlp(). Далее пользователь во время выполнения программы может менять настройки (запрещать/разрешать). Вопрос - можно ли это реализовать по другому, есть ли какие-нибудь библиотеки, аналогичные ipchains, но подключаемые нормально (#include <...>)?Заранее спасибо.
>Требуется написать программу, которая будет разрешать/запрещать доступ определенным хостам в сети к моему компьютеру. Программа должна быть GUI. Сейчас я делаю так - для каждого хоста, у которого есть запрет, вызывается ipchains с помощью execlp(). Далее пользователь во время выполнения программы может менять настройки (запрещать/разрешать). Вопрос - можно ли это реализовать по другому, есть ли какие-нибудь библиотеки, аналогичные ipchains, но подключаемые нормально (#include <...>)?
>
>Заранее спасибо.Встречный вопрос. А зачем это реализовывать по другому (или на хрена козе баян)? Это же Linux, а не Windows. По-моему самый идеальный вариант это некий конфигурационный файл (который можно редактировать хоть vi) со спискам IP адресов + небольшая shell-программа, которая просто перебирает эти адреса и вызывает ipchains (iptables) с соответствующими параметрами.
А ipchains и iptables - они непосредственно с ядром работают и по моему глубокому убеждению, лезть туда прикладному программисту следует только в самом крайнем случае
>Встречный вопрос. А зачем это реализовывать по другому (или на хрена козе
>баян)? Это же Linux, а не Windows. По-моему самый идеальный вариант
>это некий конфигурационный файл (который можно редактировать хоть vi) со спискам
>IP адресов + небольшая shell-программа, которая просто перебирает эти адреса и
>вызывает ipchains (iptables) с соответствующими параметрами.Периодически выползает глюк - например в списке пять хостов, всем доступ запрещен. В результате программа вызывает пять раз ipchains. Но! Если после этого посмотреть список правил (ipchains -L), то их там будет всего три (два, ни одного). Конфигурационный файл читается правильно, вызов ipchains тоже происходит правильно (execlp("xterm", "xterm", "-e", "ipchains", <параметры ipchains>, NULL)). В чем здесь баг - я не знаю. Поэтому ищу другие варианты.
>Периодически выползает глюк - например в списке пять хостов, всем доступ запрещен. В результате программа вызывает пять раз ipchains. Но! Если после этого посмотреть список правил (ipchains -L), то их там будет всего три (два, ни одного). Конфигурационный файл читается правильно, вызов ipchains тоже происходит правильно (execlp("xterm", "xterm", "-e", "ipchains", <параметры ipchains>, NULL)). В чем здесь баг - я не знаю. Поэтому ищу другие варианты.а еще можно генерить свой shell-скрипт со всеми нужными командами ipchains и запускать его...
>Периодически выползает глюк - например в списке пять хостов, всем доступ запрещен. В результате программа вызывает пять раз ipchains. Но! Если после этого посмотреть список правил (ipchains -L), то их там будет всего три (два, ни одного). Конфигурационный файл читается правильно, вызов ipchains тоже происходит правильно (execlp("xterm", "xterm", "-e", "ipchains", <параметры ipchains>, NULL)). В чем здесь баг - я не знаю. Поэтому ищу другие варианты.Скорее всего вы все таки что-то неправильно делаете - если в ipchains bug, то вам уже ничего не поможет :) Через shell это дело проверяли?
Да, и зачем ipchains вызывать через xterm, почему не вызвать сразу?