ics automation trouble
Добавлено: 19 май 2004, 17:47
Всем привет!
Помогите, пожалуйста, разобраться с такой задачкой:
На компьютере стоит два сетевых интерфейса, один сконфигурирован как
нормальное подключение (public connection), другой смотрит во внутреннюю сеть
192.168.0.0 и выступает в качестве шлюза для всех компьютеров этой
внутренней сети (private connection). Картинка вот такая:
Нужно обеспечить беспрепятсвенный выход из компьютера во внутренней
сети во внешнюю через сетевой маршрутизатор. В windows xp/2k это
стандартная фича называется Internet Connection Sharing.
Так если у тебя на компьютере есть два интерфейса то можно
организовать эту схему сделав следующие шаги:
start -> панель управления -> сеть и удаленный доступ к сети -> правый
клик по public connection -> общий доступ
-> "разрешить общий доступ для этого подключения"
Мне необходимо этот процесс автоматизировать. Можно конечно написать
программку которая бы имитировала нажатия tab`a, enter`а и т.д., но
мне такое решение не нравится.
Потенциально есть другое решение с развертыванием NAT сервера на public машине и конфирурированием его стандартными утилитами win2k/xp типа netsh или через WMI, ибо ICS это по сути тот же NAT только значительно упрощенный. В windows2000 есть гуй для настройки NAT сервера среди сервисов и приложений - "Маршуртизация и удаленный доступ". Изменения которые можно произвести с помощью этого интерфейса, потом отображаются в контексте
где netsh это стандартная утилитика в windows xp/2k
Таким образом если удастся решить эту задачу в гуе, теоретически можно будет, поняв какие изменения нужно внести, решать ее из консоли тем же netsh.
Пытался настроить NAT-сервер по инструкциям хелпа, но безуспешно. То ли руки кривые, то ли Microsoft не умеет писать хелпы.
Еще недавно нашел в msdn`e статейку о том как все таки ICS можно
включить программно:
http://msdn.microsoft.com/library/defau ... erence.asp
а именно вот здесь:
http://msdn.microsoft.com/library/defau ... haring.asp
И хоть бы один примерчик работающей программы включающую ICS привели :-(
Это решение кажется наиболее правильным, но у меня к сожалению очень мало опыта разработки приложений работающих с win api. Может быть кому нибудь приходилось работать с этой библиотечкой?
Чего делать то надо? :-(
Спасибо.
Помогите, пожалуйста, разобраться с такой задачкой:
На компьютере стоит два сетевых интерфейса, один сконфигурирован как
нормальное подключение (public connection), другой смотрит во внутреннюю сеть
192.168.0.0 и выступает в качестве шлюза для всех компьютеров этой
внутренней сети (private connection). Картинка вот такая:
Код: Выделить всё
компьютер во
внутренней сети windows-комьютер
|
192.168.0.2 | 192.168.58.7 (public ip-адрес)
|----------| | |---------------|
| |---------| |--> на сетевой маршрутизатор
|----------| | |---------------|
| 192.168.0.1 (шлюз для комьютеров внутренней сети)
|
сети во внешнюю через сетевой маршрутизатор. В windows xp/2k это
стандартная фича называется Internet Connection Sharing.
Так если у тебя на компьютере есть два интерфейса то можно
организовать эту схему сделав следующие шаги:
start -> панель управления -> сеть и удаленный доступ к сети -> правый
клик по public connection -> общий доступ
-> "разрешить общий доступ для этого подключения"
Мне необходимо этот процесс автоматизировать. Можно конечно написать
программку которая бы имитировала нажатия tab`a, enter`а и т.д., но
мне такое решение не нравится.
Потенциально есть другое решение с развертыванием NAT сервера на public машине и конфирурированием его стандартными утилитами win2k/xp типа netsh или через WMI, ибо ICS это по сути тот же NAT только значительно упрощенный. В windows2000 есть гуй для настройки NAT сервера среди сервисов и приложений - "Маршуртизация и удаленный доступ". Изменения которые можно произвести с помощью этого интерфейса, потом отображаются в контексте
Код: Выделить всё
netsh routing ip nat
Таким образом если удастся решить эту задачу в гуе, теоретически можно будет, поняв какие изменения нужно внести, решать ее из консоли тем же netsh.
Пытался настроить NAT-сервер по инструкциям хелпа, но безуспешно. То ли руки кривые, то ли Microsoft не умеет писать хелпы.
Еще недавно нашел в msdn`e статейку о том как все таки ICS можно
включить программно:
http://msdn.microsoft.com/library/defau ... erence.asp
а именно вот здесь:
http://msdn.microsoft.com/library/defau ... haring.asp
И хоть бы один примерчик работающей программы включающую ICS привели :-(
Это решение кажется наиболее правильным, но у меня к сожалению очень мало опыта разработки приложений работающих с win api. Может быть кому нибудь приходилось работать с этой библиотечкой?
Чего делать то надо? :-(
Спасибо.