Страница 1 из 1
Скрипт для получения IP хоста
Добавлено: 2008-03-14 11:54:05
ALF
Всем доброго дня, есть небольшая проблемка.
Нужно получать обновления с ftp ресурса(ftp.что-то.com). Открыл я 21 порт на этот адрес. И все бы ничего, но этот ftp постоянно "перезжает" с адреса на адрес. Если в ipfw вместо адреса указывать само имя хоста он не всегда его "опрделяет"...
cannot resolve hostname бла-бла-бла....
Пришла мысль написать скриптик который бы в /etc/hosts добавлял актуальную запись с IP этого хоста и заменял бы старую
Теперь собтвено вопрос) Как бы это реализовать.. в написании скриптов я не силен... буду признателен за любого рода помощь
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-15 10:42:50
Alex Keda
может лучше отдельный скрипт который будет 1 правилло менять в файрволле?
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-15 10:46:58
ALF
Немного не понял, можно по подробней?
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-15 13:39:10
dikens3
ALF писал(а):Немного не понял, можно по подробней?
У тебя есть строка, к примеру под номером 100:
Код: Выделить всё
100 allow tcp from any to ftp.что-то.com 21
Тогда написать скрипт, который будет удалять правило с номером 100 и добавлять новое (актуальное)
Код: Выделить всё
#!/bin/sh
ipfw delete 100
ipfw add 100 allow tcp from any to ftp.что-то.com 21
И всё это дело закинуть в cron с нужным интервалом.
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-16 3:21:25
ALF
dikens3 писал(а):ALF писал(а):Немного не понял, можно по подробней?
У тебя есть строка, к примеру под номером 100:
Код: Выделить всё
100 allow tcp from any to ftp.что-то.com 21
Тогда написать скрипт, который будет удалять правило с номером 100 и добавлять новое (актуальное)
Код: Выделить всё
#!/bin/sh
ipfw delete 100
ipfw add 100 allow tcp from any to ftp.что-то.com 21
И всё это дело закинуть в cron с нужным интервалом.
В том то и весь подвох... оно не всегда "определяет" имя хоста!
Если имя есть в /etc/hosts то все ОК.... а так....
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-16 5:27:02
BlackCat
Намек был на то, что удабнее играться не строкой в /etc/hosts, а правилом файрвола.
По поводу написания скриптов, посмотрите здесь
http://forum.lissyara.su/viewforum.php?f=32, мануал тут
http://www.lissyara.su/?id=1075
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-16 6:08:56
polvo
Хм, а вообще в чем необходимость фильтровать исходящий ftp трафик?)
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-16 12:10:38
dikens3
В том то и весь подвох... оно не всегда "определяет" имя хоста!
В чём причина этого
не всегда?
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-16 20:24:40
ALF
Cпс... буду капать
dikens3 писал(а):В том то и весь подвох... оно не всегда "определяет" имя хоста!
В чём причина этого
не всегда?
Если бы я только знал

Re: Скрипт для получения IP хоста
Добавлено: 2008-03-18 12:26:23
manefesto
пару раз писал правила и понял.
По сути правило это всего навсего
shell скрипт.
Советую выдергивать ip шник используя возможности
awk и
sed.
Аля
Код: Выделить всё
$host_ip=`host ftp.<что-то там> | awk '{print $2}'`
ipfw add 100 allow tcp from any to $host_ip 21
PS: Срочно мне надо дать права модера :-)
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-18 12:39:23
manefesto
на вот...смотри
Код: Выделить всё
$host_ip=`ping -c 1 ftp.bla-bla.com | head -n 2 | tail -n 1 | awk '{print $4}' | sed "s/\://"`
ipfw add 100 allow tcp from any to $host_ip 21
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-18 13:44:35
manefesto
я не понял, вопрос решен или нет ?
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-24 10:54:55
ALF
manefesto писал(а):на вот...смотри
Код: Выделить всё
$host_ip=`ping -c 1 ftp.bla-bla.com | head -n 2 | tail -n 1 | awk '{print $4}' | sed "s/\://"`
ipfw add 100 allow tcp from any to $host_ip 21
Спасибо огромное помощь, но вот есть косяк((
выдает такую строку(( чего оно так

Re: Скрипт для получения IP хоста
Добавлено: 2008-03-24 13:32:32
schizoid
да нормуль все вроде...
Код: Выделить всё
# ping -c 1 ya.ru | head -n 2 | tail -n 1 | awk '{print $4}' | sed "s/\://"
213.180.204.8
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-24 13:54:26
polvo
omg, зачем через ping? ))
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-24 13:58:42
ALF
schizoid писал(а):да нормуль все вроде...
Код: Выделить всё
# ping -c 1 ya.ru | head -n 2 | tail -n 1 | awk '{print $4}' | sed "s/\://"
213.180.204.8
Так вот и у меня работает если просто команду ввести... а если скриптом получаеться лажа...
например с тем же ya.ru
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-24 13:59:39
Alex Keda
а ты из sh выполни

))
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-24 14:02:40
ALF
ААААААААА!!!!!!!!!!

Я плуг)) Разобрался.... Спасибо всем большое очень помогли!
P.S. А сможет кто для меня расчехлить вот это: awk '{print $4}' и это: sed "s/\://"

Re: Скрипт для получения IP хоста
Добавлено: 2008-03-24 14:14:50
zg
ALF писал(а):А сможет кто для меня расчехлить вот это: awk '{print $4}' и это: sed "s/\://"

1 - вывод четвёртого по счёту столбца из стандартного потока ввода, разделяемого по пробелам
2 - удаление первого двоеточия в строке
Re: Скрипт для получения IP хоста
Добавлено: 2008-03-24 14:33:01
ALF
zg писал(а):ALF писал(а):А сможет кто для меня расчехлить вот это: awk '{print $4}' и это: sed "s/\://"

1 - вывод четвёртого по счёту столбца из стандартного потока ввода, разделяемого по пробелам
2 - удаление первого двоеточия в строке
Спасибо большое