| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как программно установить IP-адрес |
| Автор: AndreySoft 21.10.2003, 20:09 |
| ну т.е. не в ручную, в настройках, а чтобы прога присвоила компу IP-адрес, маску, шлюз, днс-сервер... ну допустим из Label.Caption Если можно помогите кодом... или хотя бы где это можно найти. Заранее, огромное спасибо! |
| Автор: dvs 22.10.2003, 00:04 |
| Ну лучше, наверное, из Edit.Text. |
| Автор: AndreySoft 22.10.2003, 18:14 |
| Да хоть из Edit, принцип не в этом заключается. Я про то, как запихнуть этот IP программно. |
| Автор: Pakshin A. S. 22.10.2003, 18:51 | ||
Есть функция получения IP-адреса, может поможет...
P. S. Как я понял, IP узнаётся по адресу. Значит на этот адрес можно послать новый IP! Но я могу ошибаться... |
| Автор: p0s0l 22.10.2003, 20:41 | ||
Где-то была тема в разделе C про это. Там вроде Baa хотел написать для этого DLL, которая делает выше перечисленное. А в принципе можешь и сам сделать - не очень и сложно... |
| Автор: AndreySoft 22.10.2003, 21:42 | ||
т.е. ты не знаешь можно ли таким способом установить новый IP... Так? |
| Автор: AndreySoft 22.10.2003, 21:43 | ||
Значит надо использовать реестр? И больше никак? |
| Автор: dvs 22.10.2003, 22:08 |
| А есть еще извращенный способ сделать это: Использовать Winexec или еще что-нибуть и утилиту ipconfig. Но это только для извращенцев. |
| Автор: AndreySoft 22.10.2003, 22:40 | ||
Ну нет, это даже не грамотно получается. Плохой стиль программирования. т.е. Delphi запускает другую прогу - отстой полный. Нет, мне надо чтобы это произошло чисто кодом, даже если этот код равносилен какой-нибудь из утилит (тот же, ipconfig). Вобщем меня интересует как это осуществить программный путём... |
| Автор: <Spawn> 22.10.2003, 23:19 |
| Смотри интерфейс IClusCfgIPAddressInfo и его метод SetIPAddress. Вот небольшое описалово из MSDN: Platform SDK: Windows Clustering IClusCfgIPAddressInfo::SetIPAddress [This is preliminary documentation and subject to change.] The SetIPAddress method sets an IP address of the network interface, to take affect when the cluster configuration is committed. HRESULT SetIPAddress( ULONG ulDottedQuadIn ); Parameters ulDottedQuadIn [in] The IP address of the interface to be stored in dotted quad format. Return Values If the SetIPAddress method successfully sets the IP address, it returns S_OK. Any other HRESULT value indicates that the call failed. Requirements Windows NT/2000/XP: Included in Windows .NET Server. Header: ClusCfgServer.idl. See Also IClusCfgIPAddressInfo Platform SDK Release: November 2001 What did you think of this topic? Let us know. Order a Platform SDK CD Online (U.S/Canada) (International) Requirements Windows NT/2000/XP: Included in Windows .NET Server. Header: ClusCfgServer.idl. See Also IClusCfgIPAddressInfo Вот описалово самого интерфейса: Platform SDK: Windows Clustering IClusCfgIPAddressInfo [This is preliminary documentation and subject to change.] The IClusCfgIPAddressInfo interface sets and retrieves information about an IP address. Methods in Vtable Order The IClusCfgIPAddressInfo interface inherits the methods of the standard COM interface IUnknown. In addition, IClusCfgIPAddressInfo exposes the following unique methods. IClusCfgIPAddressInfo Method Description GetUID Retrieves the unique identifier for an IP address. GetIPAddress Retrieves an IP Address for the network interface. SetIPAddress Stores an IP Address of the network interface, to take effect when the cluster configuration is committed. GetSubnetMask Retrieves a subnet mask for the network interface. SetSubnetMask Stores a subnet mask for the network interface, to take effect when the cluster configuration is committed. Requirements Windows NT/2000/XP: Included in Windows .NET Server. Header: ClusCfgServer.idl. Platform SDK Release: November 2001 What did you think of this topic? Let us know. Order a Platform SDK CD Online (U.S/Canada) (International) Requirements Windows NT/2000/XP: Included in Windows .NET Server. Header: ClusCfgServer.idl. |
| Автор: Baa 23.10.2003, 00:44 | ||
| Гы У функции название конечно заманчивое, но ты знаешь, что значит это: IClusCfgIPAddressInfo::SetIPAddress Енто ж метод COM Interface'а... более того
Прально Posol грит Ента инфа нужна драйверу, а откуда ему еще брать параметры, как не из реестра? Чтобы проще было енто се юзать, все засовывается в длл... могу поделиться онной...впрочем, как уже говорилось, создать подобную труда не составит. |
| Автор: Dmitry V.Abramov 23.10.2003, 05:34 | ||
Есть еще одно объяснение - в машине может стоять N сетевых карт. Каждой из которых может быть прописано M адресов. Который из них отправится менять IClusCfgIPAddressInfo::SetIPAddress - не очень понятно... |
| Автор: AndreySoft 23.10.2003, 15:47 | ||||
Я тоже считаю что через реестр будет более правильно и полегче. Ну а пример свой можешь дать? |
| Автор: AndreySoft 24.10.2003, 18:33 |
| Алё! Примерчик выложишь, или как? |