Это утверждение справедливо только для файла post-firewall
А вообще, почитайте что нибудь про переменные sh. Довольно подробное описание sh я встретил здесь: http://www.freebsd.org/cgi/man.cgi?query=sh&format=html
Тогда подскажите, плиз, как в скрипте получить IP адрес адаптера br0.
На самом деле, мне необходимо в скрипте получить адрес сети адаптера br0 с префиксом. Т.е. например: 192.168.1.0/24
ЗЫ: Вообще странно, мне кажется даже Олег писал об этой возможности
Last edited by AlexeyN; 26-02-2008 at 20:52.
Это утверждение справедливо только для файла post-firewall
А вообще, почитайте что нибудь про переменные sh. Довольно подробное описание sh я встретил здесь: http://www.freebsd.org/cgi/man.cgi?query=sh&format=html
м.б. ifconfig поможет?
С уважением, lex.
Получить ip адрес br0 можно так:
А вот добавить к этому субнет путем интерпретации вывода ifconfig задача выполнимая, но не совсем тривиальная.Code:ifconfig br0 | awk '/inet addr/{print $2}' | awk -F: '{print $2}'
Впрочем если добавить надо просто /24, то можно сделать так:
P.S. А вообще, на кой хрен это надо --- совсем непонятно. Поскольку адрес br0 все равно статично задан. Почему бы его просто не прописать как есть...Code:echo "`ifconfig br0 | awk '/inet addr/{print $2}' | awk -F: '{print $2}'`/24"
P.P.S. Нда... Там же еще последний разряд в 0 скидывать надо (а может необязательно?). Тогда можно сделать:
Code:ifconfig br0 | awk '/inet addr/{print $2}' | awk -F: '{print $2}' | awk -F. '{print $1 "." $2 "." $3 ".0/24"}'
Last edited by al37919; 26-02-2008 at 21:07.
PHP Code:
iplan=`/usr/sbin/ip -o -f inet addr show br0 | awk '{print $4;}'`
[routah:init.d] echo $iplan
192.168.1.1/24
Про него я и говорю. У меня выдало сообщение "адаптер не найден" Правда файл post-firewall я запускал вручную, но из /usr/local/sbin/. Проверю еще раз, может что накосячил. Спасибо!
А можно ли как преобразовать адрес интерфейса в адрес сети с префиксом? Или может быть можно получить его для post-firewall каким либо другим способом? Очень не хочется прописывать его жестко. Необходимо для того, чтоб прописать POSTROUTING в nat при старте OpenVPN клиента.
Понимаю что задача не тривиальная. Но хотелось бы настроить один раз и в случае смены айпи адресации не перенастраивать правила файреволла. Тем более, что роутер будет периодически мигрировать. Роутер будет использоваться для организации одной из точек большой РСПД. Знаю про скорость. В данной точке не критично
Last edited by AlexeyN; 26-02-2008 at 21:14.
На 1 сообщение выше.А можно ли как преобразовать адрес интерфейса в адрес сети с префиксом?
djet :thumbs up: (тема апдейтится медленнее, чем предлагаются решения )
В общем ip в post-firewall --- $4, а вот субнет к ней --- наверное, см. на 2 поста выше.
А нужен адрес именно сети? Тогда так:
PHP Code:
ip route list dev br0 scope link | awk '{print $1}'
Тогда уж правильнее
PHP Code:
ip route list dev br0 proto kernel scope link | awk '{print $1};'
192.168.1.0/24
Если Вы запускаете файл вручную, то, подозреваю, не передаете ему никаких параметров.
$1, $2, и т.д. - это не "волшебные" слова, которые подставляют то, что Вам нужно, а переменные, хранящие, соответственно, первый, второй, и т.д. параметры, переданные скрипту.
Если Вы их не указали - то они и будут пустыми.