Изменить настройки IP с помощью C ++ - PullRequest
2 голосов
/ 25 мая 2010

Как программно изменить настройки IP-адреса Windows CE 6 через C ++? Функции для Windows также могут работать.

Я обнаружил, что могу изменить имя хоста с помощью sethostname , но не смог найти способ изменить настройки IP-адреса, такие как:

  • IP-адрес
  • DHCP
  • Subnet
  • Шлюз
  • DNS1 / DNS2
  • WINS1 / WINS2

Любые советы / указатели были бы великолепны. Спасибо.

P.s. Как бы вы получили окно для обновления до этих настроек - требуется ли обновление или программный эквивалент ipconfig /renew?

Ответы [ 3 ]

3 голосов
/ 25 мая 2010

Большинство из них подпадают под IpHlp API.

Вы на самом деле не меняете IP-адрес - вы используете DeleteIpAddress, чтобы удалить старый, затем AddIpAddress, чтобы добавить новый один. Вы указываете маску подсети при добавлении адреса.

Не совсем понятно, что вы хотите знать о DHCP. Вы можете использовать DHCP через IpReleaseAddress и IpRenewAddress. Вы можете получить адрес текущего DHCP-сервера с помощью GetAdaptersInfo (среди прочих). По крайней мере, если память служит, получение ее адреса в основном для информации - поскольку основная идея DHCP заключается в том, чтобы избежать ручной настройки, вы обычно находите / используете ее через широковещательное сообщение.

Серверы DNS и WINS можно настроить с помощью класса WMI Win32_NetworkAdapterConfiguration (SetDNSServerSearchOrder и SetWinsServer)

Вы также можете отрегулировать несколько (большинство?) Других параметров через WMI.

2 голосов
/ 25 мая 2010

Вы проверяли процедуры IP Helper на MSDN? Я думаю, что они обеспечивают некоторые, если не все, что вам нужно.

** РЕДАКТИРОВАТЬ: ** Обновлена ​​ссылка. Спасибо ctacke

0 голосов
/ 01 августа 2018

Предупреждение: использование IpHelper, AddIpAddress, НЕ меняет IP-адрес постоянно. После перезагрузки исходные настройки сетевого адаптера вернулись.

...