Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!
250 ₴

Нужно написать работающую как daemon на любой linux-ОС программу

проект завершен


Нужно написать работающую как daemon на любой linux-ОС программу, которая:

1. Считает IPv4-адрес интерфейса, например, eth0 (имя интерфейса брать из файла настроек "/tmp/myprog/interface.conf" и хранить тоже в нем, если файл не найден использовать по умолчанию "eth0") и записывает его в файл "/tmp/myprog/lastIPv4address.conf" с перезаписью.

#ifconfig eth0

eth0     Link encap:Ethernet  HWaddr 76:3e:a4:99:52:cc

          inetaddr:192.168.1.21  Bcast:192.168.1.255  Mask:255.255.255.0

          ...


2. Копирует файл "/tmp/myprog/template.sh" (если не найден, выдать ошибку и записать в лог-файл адрес, по которому он не найден) в "/tmp/myprog/install.sh" (если "/tmp/myprog/install.sh" уже существует - то удалить его и продолжить копирование),  считывает содержимое "/tmp/myprog/install.sh", вот пример его содержимого:

#!/bin/bash

...

iptables-t nat -F

iptables-t nat -A PREROUTING -d 10.15.0.3 -p tcp --dport 1004 -j DNAT--to-destination 192.168.0.124:1004

iptables-t nat -A POSTROUTING -d 192.168.0.124 -p tcp --dport 1004 -j SNAT--to-source $IPeth0

iptables-t nat -A PREROUTING -d 10.15.0.3 -p udp --dport 1004 -j DNAT--to-destination 192.168.0.124:1004

iptables-t nat -A POSTROUTING -d 192.168.0.124 -p udp --dport 1004 -j SNAT--to-source $IPeth0


3. Заменит в этом файле фразу "$IPeth0" на IPv4-адрес, тот который был получен с интерфейса eth0, например на  "192.168.1.21" и сохранить изменения. 

В результате должен получится файл с таким содержанием:

#!/bin/bash

...

iptables-t nat -F

iptables-t nat -A PREROUTING -d 10.15.0.3 -p tcp --dport 1004 -j DNAT--to-destination 192.168.0.124:1004

iptables-t nat -A POSTROUTING -d 192.168.0.124 -p tcp --dport 1004 -j SNAT--to-source 192.168.1.21

iptables-t nat -A PREROUTING -d 10.15.0.3 -p udp --dport 1004 -j DNAT--to-destination 192.168.0.124:1004

iptables-t nat -A POSTROUTING -d 192.168.0.124 -p udp --dport 1004 -j SNAT--to-source 192.168.1.21


4. Запустит этот скрипт "/tmp/myprog/install.sh" (например так: "sh /tmp/myprog/install.sh")

5. Даст команду операционной системе "iptables-save --table nat>/etc/firewall.conf" (путь брать из файла "/tmp/myprog/pathfw.conf", если файла нет, использовать путь "/etc/firewall.conf")

6. Через интервал, указанный в файле "/tmp/myprog/interval.conf" (если файла нет, интервал равен 3600) в секундах снова считывает IPv4-адрес интерфейса и сравнивает с тем, который записан в файле "/tmp/myprog/lastIPv4address.conf", если IP адреса на интерфейсе и в файле разные, то начать все с пункта 1, если одинаковые, то повторить этот пункт 6.

Отзыв заказчика об исполнителе Ярославе Е.

Качество
Профессионализм
Стоимость
Контактность
Сроки

Работа выполнена на отлично. Ярослав хороший программист. Все время был на связи, оперативно реагировал на сообщения и замечания. Большое спасибо!

Вячеслав П. Вячеслав Поспелов | Сейф Сейф

Отзыв фрилансера о заказчике Вячеславе Поспелове

Оплата
Постановка задачи
Четкость требований
Контактность

Прекрасний замовник, дуже чітке тз. Було надзвичайно приємно співпрацювати і сподіваюсь на співпрацю в майбутньому)

Ярослав Е. Ярослав Ерстенюк | Сейф Сейф



  1. 2 дня30 $
    Владислав Колесниченко
     251   1   0

    Здравствуйте, готов выполнить задание.

    Россия Москва | 11 июля 2016 |
  2. 2 дня10 $
    Alex sol
     176   5   1

    Здравствуйте!

    Украина Киев | 11 июля 2016 |
  3. 3 дня250 ₴Победившая ставка
    Ярослав Ерстенюк
     208   6   0

    Доброго дня!
    Можу реалізувати Ваш проект. Мова програмування-С++.
    Використовую linux-систему(Ubuntu 14.04 LTS) як основну ОС рік, всі свої проекти пишу спочатку під цю систему( а тоді при необхідності використовую wine для кроскомпіляції і тестую на вінді).

    Украина Ивано-Франковск | 11 июля 2016 |
  4. 10 дней200 $
    Фёдор Ссс
     -13   0   1

    Здравствуйте. Я знаю как реализовать вашу программу на C++

    Беларусь Беларусь | 12 июля 2016 |

Заказчик
Вячеслав Поспелов
Украина Мелитополь  2   0
Проект опубликован
11 июля 2016
64 просмотра
Метки
Поделиться