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

 
 
> Как установить новый ip-адрес интерфейса программно?
Atridies
сообщение Nov 30 2014, 14:37
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 445
Регистрация: 7-02-05
Из: Зеленоград
Пользователь №: 2 468



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

Есть задача - установить новый ip-адрес интерфейса из работающей программы. Из консоли делается просто: "ifconfig eth0 inet 192.168.1.10".
Попробовал аналогично вызвать ifconfig из пользовательской программы:

Код
int main(int argc, char* argv[], char* enpv[])
{
    pid_t num;
    int status;
    num = fork();
    if(num == 0)
    {
        execl("ifconfig", "eth0", "inet", "10.0.2.16");
    }
    else
    {
        wait(&status);
        printf("ending");
    }
    return 0;
}


Запускаю, проверяю - адрес не меняется. Что я делают не так? Запускаю эту программу под рутом.
Менять адрес через перезапись в файлах конфигурации - не хочу, т.к. у разных дистрибутивов эти файлы лежат в разных папках.

Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Atridies
сообщение Dec 5 2014, 17:21
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 445
Регистрация: 7-02-05
Из: Зеленоград
Пользователь №: 2 468



Команда:
Код
system("ifconfig eth0 10.0.5.20");

действительно позволила установить новый ip. Но во-первых: это странно, а во-вторых: мне кажется - это неправильно - использовать sh для работы прикладного ПО.

Если ничего не получится - буду так делать. Но может быть - есть еще какие-нибудь идеи: почему не работает ioctl?
Go to the top of the page
 
+Quote Post
Jury093
сообщение Dec 5 2014, 19:09
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(Atridies @ Dec 5 2014, 20:21) *
действительно позволила установить новый ip. Но во-первых: это странно, а во-вторых: мне кажется - это неправильно - использовать sh для работы прикладного ПО.
Если ничего не получится - буду так делать. Но может быть - есть еще какие-нибудь идеи: почему не работает ioctl?

что мешало еще 30 ноября выудить пакет, содержащий исходники ifconfig (или другой утилиты, умеющей менять адрес) из любимого дистрибутива, и посмотреть как там это сделано?
зачем изобретать то, что давно надежно и качественно написано до вас?
это однокристаллочникам приходится барахтаться, прилаживая ДВС к изобретенному велосипеду..
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 00:32
Рейтинг@Mail.ru


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