Oops 0 26 сентября, 2010 Опубликовано 26 сентября, 2010 (изменено) · Жалоба Здравствуйте!!! Нужно написать программку, которая будет менять IP, NETMASK, GW, UP/DOWN сетевого устройства системы. Все это умеет делать программа ifconfig. Можно както, используя ее возможности, из своей программки менять параметры сетевого интерфейса? Я думаю както можно во внешнюю оболочку SHELL передавать команды сформированные в моей программке. Подскажите, где можно это почитать, буду рад примерчику. Спасибо!!! :rolleyes: Изменено 26 сентября, 2010 пользователем Oops Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 26 сентября, 2010 Опубликовано 26 сентября, 2010 · Жалоба Здравствуйте!!! Нужно написать программку, которая будет менять IP, NETMASK, GW, UP/DOWN сетевого устройства системы. Все это умеет делать программа ifconfig. Можно както, используя ее возможности, из своей программки менять параметры сетевого интерфейса? Я думаю както можно во внешнюю оболочку SHELL передавать команды сформированные в моей программке. Подскажите, где можно это почитать, буду рад примерчику. Спасибо!!! :rolleyes: Раз Вы не написали, на каком языке собираетесь писать, изложу независимый вариант - Вы создаете в определенной директории текстовый файл, который читается скриптом, запускаемым кроном... А этот скрипт и делает всю работу... Примерно, как lpd.. Особые права только у скрипта... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 9 26 сентября, 2010 Опубликовано 26 сентября, 2010 · Жалоба Подскажите, где можно это почитать, буду рад примерчику. man execv Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oops 0 26 сентября, 2010 Опубликовано 26 сентября, 2010 · Жалоба Раз Вы не написали, на каком языке собираетесь писать, изложу независимый вариант - Вы создаете в определенной директории текстовый файл, который читается скриптом, запускаемым кроном... А этот скрипт и делает всю работу... Примерно, как lpd.. Особые права только у скрипта... Пишу в Netbeans на C. Понятно что скрипт можно написать, а вот как ему из программки передать например IP или MASK и тп. чтобы он их подхватил и присвоил. man execv Спасибо, почитаю :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 9 26 сентября, 2010 Опубликовано 26 сентября, 2010 (изменено) · Жалоба Спасибо, почитаю :rolleyes: Вот на русском и с примерами http://www.ibm.com/developerworks/ru/library/au-unixprocess/ а в Листинг4 помоему то что вам нужно Изменено 26 сентября, 2010 пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oops 0 26 сентября, 2010 Опубликовано 26 сентября, 2010 · Жалоба Вот на русском и с примерами http://www.ibm.com/developerworks/ru/library/au-unixprocess/ а в Листинг4 помоему то что вам нужно Спасибо!!! :08: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DRUID3 0 26 сентября, 2010 Опубликовано 26 сентября, 2010 · Жалоба Вообще-то это не совсем то... Если Вы конечно хотите работать именно с оболочкой... Нужно это... popen(); system(); (добавил)P.S.: справедливости ради нужно добавить, что все современные учебники по UNIX-программированию не рекомендуют приведенные мной вызовы, как и работу с оболочкой вообще - в виду частых брешей в безопасности при написании таких программ. Потому метод приведенный sasamy подразумевает более грамотный подход решению поставленной задачи, хоть и несколько иным путем... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 27 сентября, 2010 Опубликовано 27 сентября, 2010 · Жалоба Пишу в Netbeans на C. Понятно что скрипт можно написать, а вот как ему из программки передать например IP или MASK и тп. чтобы он их подхватил и присвоил. Разве непонятно написала? Вы создаете текстовый файл ip=192..... mask = ..... .... Скрипт его читает. Выполняет... Или нет. Потом стирает. Потом проверяет его наличие. Разница по сравнению с непосредственным вызовом в том, что Ваша программа не обязательно должна запускаться от root'а. А только скрипт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Idle 0 27 сентября, 2010 Опубликовано 27 сентября, 2010 (изменено) · Жалоба а ещё можно из бизибокса сокетных функций надёргать, и никаких шеллов не надо http://git.busybox.net/busybox/tree/networking/ifconfig.c Изменено 27 сентября, 2010 пользователем Idle Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 27 сентября, 2010 Опубликовано 27 сентября, 2010 · Жалоба И выполняемый процесс должен быть от root'а, иначе с правами доступа проблема. Можно и не скрипт, а файл текстовый читает ваша программа и порождает процессы запуска ifconfig с соответствующими параметрами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 9 27 сентября, 2010 Опубликовано 27 сентября, 2010 · Жалоба И выполняемый процесс должен быть от root'а, иначе с правами доступа проблема. man sudo man sudoers PS в убунте пользователя root вообще нет по умолчанию, вернее он без пароля поэтому неактивен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oops 0 30 сентября, 2010 Опубликовано 30 сентября, 2010 · Жалоба Спасибо ВСЕМ!!! С задачей справился. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться