![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Скрипт Visual Basic для определения IP в Windows 7 и XP |
|
Любой язык - Скрипт Visual Basic для определения IP в Windows 7 и XP
|
Новый участник Сообщения: 24 |
Имеется скрипт на vb который запускается из bat фаила командой cscript delroute.vbs
Следующего содержания: Option Explicit Dim objWMIService Dim objNetAdapter Dim strComputer Dim colNetAdapters Dim addr Dim cDeleteRoute Dim WshShell strComputer = "localhost" Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where Description='WAN (PPP/SLIP) Interface' ") For Each objNetAdapter in colNetAdapters For Each addr in objNetAdapter.IPAddress cDeleteRoute = "route delete 224.0.0.0 mask 224.0.0.0 " + addr Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Echo cDeleteRoute WshShell.Run (cDeleteRoute) Next Next В ХР все работает замечательно.... в семерке не пашет (в висте скорее всего тоже) Кто может подсказать в чем тут ошибка? ЗЫ: скрипт написан путем поиска разного рода информации в инете и методом научного тыка Использовалась вот эта документация Если кто подскажет как его улучшить, сделать проверки на существование айпиадреса и интерфейса буду очень благодарен |
|
------- Отправлено: 22:10, 19-12-2009 |
Ветеран Сообщения: 1958
|
Профиль | Отправить PM | Цитировать Hitsi,
Вообще то лучше уже переходить на Powershell и конкретно http://www.oszone.net/print/7108/ http://www.itcommunity.ru/blogs/posh...gory/1271.aspx |
Отправлено: 22:31, 19-12-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Скрипт делался не конкретно для меня а для общего пользования и у кого-то до сих пор ХР, а там павершелл по умолчанию нет
ЗЫ: Вообще-то я не программист как таковой, я просто могу использовать уже кем-то написанные скрипты почти на любом языке програмирования... вот и тут я нашел несколько скриптов, соединил их в один и исправил под свои нужды. А вообще по большому счету я VB не знаю |
------- Отправлено: 22:48, 19-12-2009 | #3 |
Ветеран Сообщения: 8502
|
Профиль | Отправить PM | Цитировать Цитата Hitsi:
|
|
------- Отправлено: 23:03, 19-12-2009 | #4 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Конечно )
|
|
------- Отправлено: 23:28, 19-12-2009 | #5 |
Пользователь Сообщения: 140
|
Профиль | Отправить PM | Цитировать Мне думается что Ваш скрипт нормально отрабатывает и в Win7, однако интерфейс, который в XP называется WAN (PPP/SLIP) Interface, в win7 имеет другое имя. Для определения имен интерфейсов, запустите следующий скрипт на win7 и на XP:
Option Explicit Dim objWMIService, objNetAdapter, strComputer, colNetAdapters, addr, cDeleteRoute Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") strComputer = "localhost" Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True") For Each objNetAdapter in colNetAdapters For Each addr in objNetAdapter.IPAddress WScript.Echo "Description = " & objNetAdapter.Description & vbCrLf & _ "IP Address = " & addr& vbCrLf Next Next Фактически, это слегка переделанный Ваш скрипт. У Вас должны отобразиться имена интерфейсов, которым присвоен IP-адрес и которые подключены к сети. |
Последний раз редактировалось fomin_, 20-12-2009 в 23:50. Отправлено: 23:35, 20-12-2009 | #6 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Извиняюсь что меня так долго не было...
Скрипт написанный выше отображает только локальный айпи адресс машины и все. Покопавшись чуть выяснилось что существует нужный route в описании Win32_IP4RouteTable но там вместоайпиадреса интрфейса указывается его индекс. В моем случае 3 одинаковых роута на 3 разных индекса. Один индекс это локалхост, второй - локальный адрес (сетевой адаптер), третий это нужный нам vpn. Проблема в том что в описании Win32_NetworkAdapter и Win32_NetworkAdapterConfiguration нет данного интерфейса вообще (с данным индексом) т.е. интерфейс есть но описывается он где-то еще ( А вот где это хотелось бы знать ЗЫ: wscript просто делает это в окошке... а нажимать на кнопку ок при выводе нового значения утомительно. Проще в консоле посмотреть сразу список |
------- Отправлено: 14:26, 29-01-2010 | #7 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Может кто-нибудь знает другой способ получить ip адрес присвоенный при подключении vpn не получая его с удаленного хоста?
|
------- Отправлено: 19:46, 01-02-2010 | #8 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать проблема все еще остается....
Нужно узнать IP адресс компа подключенного к впн, без запросов на другие сайты, для Windows 7 (и Vista) и затем удалить один маршрут. Критерий только один - никакого дополнительного ПО ставить не надо. |
------- Отправлено: 23:23, 20-02-2010 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Скрипт определения внешнего IP | stolyar | Скриптовые языки администрирования Windows | 9 | 21-09-2010 12:09 | |
VBA - Visual basic 6.0 установить на Windows Vista | Anton Naumov | Программирование и базы данных | 9 | 09-01-2010 18:11 | |
Сайт на двух языках (php-скрипт для определения языка) | vitalyhan | Вебмастеру | 2 | 22-11-2009 15:36 | |
*Флейм* | Visual Basic .net для начинающего | Nibir | Программирование и базы данных | 8 | 28-10-2005 21:20 | |
Сервисы Windows NT/2000 в Visual Basic | Zuka | Программирование и базы данных | 1 | 15-09-2003 11:34 |
|