Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Вкл\выкл сетевухи программно, На Си
 
Меняю свойства соединения, но они (например, новый IP) меняются только после переподключения адаптера.
Просьба привести код включения\выключения или сразу перезапуска адаптера
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
:|  Берем простой способ  пишем  
p.s. если где ошибься поправьте.
Цитата

#include <windows.h>
void  update_ip()
{
   WinExec("ipconfig /renew ",SW_NORMAL);
}

int main(int argc, char argv[])
{
  update();
  return;
}
Есть еще вариант использовать Win API, его можно отыскать на MSDN.
 
Не покатит для обычной одноранговой сети т.к. из Центра справки и Поддержки винды:

Цитата
/renew [адаптер]
Обновление конфигурации DHCP для всех адаптеров (если адаптер не задан) или для заданного адаптера. Данный параметр доступен только на компьютерах с адаптерами, настроенными для автоматического получения IP-адресов. Чтобы указать адаптер, введите без параметров имя, выводимое командой ipconfig.
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
:D  Какая разница какая сеть одноранговая или нет. Команда renew это исполняемый файл который находится в системном каталоге.  ipconfig /release /ipconfig /renew  Заставляешь обновить айпи адрес для устройств использующих DHCP. :!:
 
Цитата
Евгений Шумаков пишет:
Заставляешь обновить айпи адрес для устройств использующих DHCP
Откуда у одноранговой сети DHCP? Так что мне нужен способ для сети где IP назначает сам админ локального компа

Цитата
Евгений Шумаков пишет:
Команда renew это исполняемый файл который находится в системном каталоге
Это к чему вообще сказано? :oops:
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
непонял он настроил, а тогда зачем тебе что-то делать?
Еще никогда не слышал чтобы менять ip адрес что-то было нужно подключать. У тебя случаем не диалап?
;)
 
Возьмём для примера самый простой случай: 2 ноута, соединены etereal-кабелем. У одного IP 192.168.0.1 у другого - 192.168.0.2

Хочу у второго компа поменять IP на 192.168.0.102 ПРОГРАММНО! Т.е. лезу в реестр, изменяю там нужный параметр где записан мой IP НО: система-то незнает что я поменял IP! У сетевухи адрес как был так и остался. И изменится он только при следующем включении в сеть!
Аналогичный фокус с изменением MAC'а: инфа обновится только после переподключения.

Вот мне и нужно: либо узнать как переподключать программно сетевуху либо каким-то образом заставить её обновить свою информацию - ведь винда при смене IP через свойства сетевухи как-то применяет к ней новые параметры без переподключения в сеть  :|
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
 
А зачем вы модифицируете реестр? Это является необходимым условием?
Может быть проще будет пойти другим путём?

Для этого в w2k есть

netsh interface ip set address

из примеров к самому netsh:

set address name="Подключение по локальной сети" source=dhcp
set address local static 10.0.0.9 255.0.0.0 10.0.0.1 1


Всё очень просто и понятно описано

netsh interface ip set address ?
 
Андрей Титов
Можно и так. Просто я уже написал и оно хзорошо работает, а переделывать влом :) пусть и недолго

Но мне главное - IP в этом случае (т.е. если переделаю код как пишете) сразу поменяется если комп уже подключен или всё равно придётся переподключаться к сети?
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."
Страницы: 1
Читают тему