реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Передача во внешнюю оболочку SHELL команд сформированных в программке., Нужно менять IP адрес системы своей программкой. ОС Ubuntu 10
Oops
сообщение Sep 26 2010, 09:16
Сообщение #1


Частый гость
**

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



Здравствуйте!!!
Нужно написать программку, которая будет менять IP, NETMASK, GW, UP/DOWN сетевого устройства системы.
Все это умеет делать программа ifconfig.
Можно както, используя ее возможности, из своей программки менять параметры сетевого интерфейса?
Я думаю както можно во внешнюю оболочку SHELL передавать команды сформированные в моей программке.
Подскажите, где можно это почитать, буду рад примерчику.
Спасибо!!! rolleyes.gif

Сообщение отредактировал Oops - Sep 26 2010, 09:18
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 26 2010, 09:21
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



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


Раз Вы не написали, на каком языке собираетесь писать, изложу независимый вариант - Вы создаете в определенной директории текстовый файл, который читается скриптом, запускаемым кроном... А этот скрипт и делает всю работу... Примерно, как lpd.. Особые права только у скрипта...
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 26 2010, 11:55
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Oops @ Sep 26 2010, 13:16) *
Подскажите, где можно это почитать, буду рад примерчику.


man execv
Go to the top of the page
 
+Quote Post
Oops
сообщение Sep 26 2010, 15:59
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 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


Спасибо, почитаю rolleyes.gif
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 26 2010, 17:34
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Oops @ Sep 26 2010, 19:59) *
Спасибо, почитаю rolleyes.gif


Вот на русском и с примерами http://www.ibm.com/developerworks/ru/library/au-unixprocess/
а в Листинг4 помоему то что вам нужно


Сообщение отредактировал sasamy - Sep 26 2010, 17:38
Go to the top of the page
 
+Quote Post
Oops
сообщение Sep 26 2010, 18:13
Сообщение #6


Частый гость
**

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



Цитата(sasamy @ Sep 26 2010, 20:34) *
Вот на русском и с примерами http://www.ibm.com/developerworks/ru/library/au-unixprocess/
а в Листинг4 помоему то что вам нужно

Спасибо!!! 08.gif
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Sep 26 2010, 18:17
Сообщение #7


山伏
*****

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



Вообще-то это не совсем то... Если Вы конечно хотите работать именно с оболочкой...

Нужно это...
popen();
system();

(добавил)P.S.: справедливости ради нужно добавить, что все современные учебники по UNIX-программированию не рекомендуют приведенные мной вызовы, как и работу с оболочкой вообще - в виду частых брешей в безопасности при написании таких программ. Потому метод приведенный sasamy подразумевает более грамотный подход решению поставленной задачи, хоть и несколько иным путем...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 27 2010, 06:18
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Oops @ Sep 26 2010, 19:59) *
Пишу в Netbeans на C. Понятно что скрипт можно написать, а вот как ему из программки передать например IP или MASK и тп. чтобы он их подхватил и присвоил.

Разве непонятно написала? Вы создаете текстовый файл
ip=192.....
mask = .....
....
Скрипт его читает. Выполняет... Или нет.
Потом стирает.
Потом проверяет его наличие.
Разница по сравнению с непосредственным вызовом в том, что Ваша программа не обязательно должна запускаться от root'а. А только скрипт.
Go to the top of the page
 
+Quote Post
Idle
сообщение Sep 27 2010, 06:51
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



а ещё можно из бизибокса сокетных функций надёргать, и никаких шеллов не надо
http://git.busybox.net/busybox/tree/networking/ifconfig.c

Сообщение отредактировал Idle - Sep 27 2010, 06:52
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Sep 27 2010, 08:42
Сообщение #10


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



И выполняемый процесс должен быть от root'а, иначе с правами доступа проблема.
Можно и не скрипт, а файл текстовый читает ваша программа и порождает процессы запуска ifconfig с соответствующими параметрами.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
sasamy
сообщение Sep 27 2010, 15:23
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(mdmitry @ Sep 27 2010, 12:42) *
И выполняемый процесс должен быть от root'а, иначе с правами доступа проблема.


man sudo
man sudoers

PS в убунте пользователя root вообще нет по умолчанию, вернее он без пароля поэтому неактивен.
Go to the top of the page
 
+Quote Post
Oops
сообщение Sep 30 2010, 03:01
Сообщение #12


Частый гость
**

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



Спасибо ВСЕМ!!!
С задачей справился. rolleyes.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 20:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01456 секунд с 7
ELECTRONIX ©2004-2016