|
|
  |
Передача во внешнюю оболочку SHELL команд сформированных в программке., Нужно менять IP адрес системы своей программкой. ОС Ubuntu 10 |
|
|
|
Sep 26 2010, 09:16
|

Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870

|
Здравствуйте!!! Нужно написать программку, которая будет менять IP, NETMASK, GW, UP/DOWN сетевого устройства системы. Все это умеет делать программа ifconfig. Можно както, используя ее возможности, из своей программки менять параметры сетевого интерфейса? Я думаю както можно во внешнюю оболочку SHELL передавать команды сформированные в моей программке. Подскажите, где можно это почитать, буду рад примерчику. Спасибо!!!
Сообщение отредактировал Oops - Sep 26 2010, 09:18
|
|
|
|
|
Sep 26 2010, 09:21
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Oops @ Sep 26 2010, 13:16)  Здравствуйте!!! Нужно написать программку, которая будет менять IP, NETMASK, GW, UP/DOWN сетевого устройства системы. Все это умеет делать программа ifconfig. Можно както, используя ее возможности, из своей программки менять параметры сетевого интерфейса? Я думаю както можно во внешнюю оболочку SHELL передавать команды сформированные в моей программке. Подскажите, где можно это почитать, буду рад примерчику. Спасибо!!!  Раз Вы не написали, на каком языке собираетесь писать, изложу независимый вариант - Вы создаете в определенной директории текстовый файл, который читается скриптом, запускаемым кроном... А этот скрипт и делает всю работу... Примерно, как lpd.. Особые права только у скрипта...
|
|
|
|
|
Sep 26 2010, 15:59
|

Частый гость
 
Группа: Участник
Сообщений: 129
Регистрация: 28-08-08
Из: г.Омск
Пользователь №: 39 870

|
Цитата(Tanya @ Sep 26 2010, 12:21)  Раз Вы не написали, на каком языке собираетесь писать, изложу независимый вариант - Вы создаете в определенной директории текстовый файл, который читается скриптом, запускаемым кроном... А этот скрипт и делает всю работу... Примерно, как lpd.. Особые права только у скрипта... Пишу в Netbeans на C. Понятно что скрипт можно написать, а вот как ему из программки передать например IP или MASK и тп. чтобы он их подхватил и присвоил. Цитата(sasamy @ Sep 26 2010, 14:55)  man execv Спасибо, почитаю
|
|
|
|
|
Sep 26 2010, 18:17
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Вообще-то это не совсем то... Если Вы конечно хотите работать именно с оболочкой... Нужно это... popen();system();(добавил)P.S.: справедливости ради нужно добавить, что все современные учебники по UNIX-программированию не рекомендуют приведенные мной вызовы, как и работу с оболочкой вообще - в виду частых брешей в безопасности при написании таких программ. Потому метод приведенный sasamy подразумевает более грамотный подход решению поставленной задачи, хоть и несколько иным путем...
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Sep 27 2010, 06:18
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(Oops @ Sep 26 2010, 19:59)  Пишу в Netbeans на C. Понятно что скрипт можно написать, а вот как ему из программки передать например IP или MASK и тп. чтобы он их подхватил и присвоил. Разве непонятно написала? Вы создаете текстовый файл ip=192..... mask = ..... .... Скрипт его читает. Выполняет... Или нет. Потом стирает. Потом проверяет его наличие. Разница по сравнению с непосредственным вызовом в том, что Ваша программа не обязательно должна запускаться от root'а. А только скрипт.
|
|
|
|
|
Sep 27 2010, 15:23
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(mdmitry @ Sep 27 2010, 12:42)  И выполняемый процесс должен быть от root'а, иначе с правами доступа проблема. man sudo man sudoers PS в убунте пользователя root вообще нет по умолчанию, вернее он без пароля поэтому неактивен.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|