Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Скрипт Visual Basic для определения IP в Windows 7 и XP

Ответить
Настройки темы
Любой язык - Скрипт Visual Basic для определения IP в Windows 7 и XP

Аватара для Hitsi

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


Имеется скрипт на 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
По сути он определяет IP адресс интерфейса WAN (PPP/SLIP) Interface (VPN вроде как) и удаляет роут "route delete 224.0.0.0 mask 224.0.0.0 " + IP
В ХР все работает замечательно.... в семерке не пашет (в висте скорее всего тоже)

Кто может подсказать в чем тут ошибка?

ЗЫ: скрипт написан путем поиска разного рода информации в инете и методом научного тыка
Использовалась вот эта документация
Если кто подскажет как его улучшить, сделать проверки на существование айпиадреса и интерфейса буду очень благодарен

-------
Не стоит думать что все так плохо, все еще хуже... хуже до такой степени, что прышать хочется... хорошо что не с крыши.


Отправлено: 22:10, 19-12-2009

 

Ветеран


Сообщения: 1958
Благодарности: 306

Профиль | Отправить PM | Цитировать


Hitsi,
Вообще то лучше уже переходить на Powershell и конкретно
http://www.oszone.net/print/7108/
http://www.itcommunity.ru/blogs/posh...gory/1271.aspx

Отправлено: 22:31, 19-12-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Hitsi

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


Скрипт делался не конкретно для меня а для общего пользования и у кого-то до сих пор ХР, а там павершелл по умолчанию нет

ЗЫ: Вообще-то я не программист как таковой, я просто могу использовать уже кем-то написанные скрипты почти на любом языке програмирования... вот и тут я нашел несколько скриптов, соединил их в один и исправил под свои нужды. А вообще по большому счету я VB не знаю

-------
Не стоит думать что все так плохо, все еще хуже... хуже до такой степени, что прышать хочется... хорошо что не с крыши.


Отправлено: 22:48, 19-12-2009 | #3


Аватара для Vancouver

Ветеран


Сообщения: 8502
Благодарности: 1586

Профиль | Отправить PM | Цитировать


Цитата Hitsi:
запускается из bat »
Батник запускаем от имени Админа ?

-------
Нефиг ставить то, к чему второй сервис-пак не вышел.
"Есть старое правило - чтобы не было геморроя, руки должны быть прямыми, а извилины - кривыми, но не наоборот." © Korzh


Отправлено: 23:03, 19-12-2009 | #4


Аватара для Hitsi

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


Конечно )

-------
Не стоит думать что все так плохо, все еще хуже... хуже до такой степени, что прышать хочется... хорошо что не с крыши.


Отправлено: 23:28, 19-12-2009 | #5


Пользователь


Сообщения: 140
Благодарности: 14

Профиль | Отправить 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
Только запускайте его не через cscript, а через wscript или просто 2-ды кликните на файле.
Фактически, это слегка переделанный Ваш скрипт.
У Вас должны отобразиться имена интерфейсов, которым присвоен IP-адрес и которые подключены к сети.

Последний раз редактировалось fomin_, 20-12-2009 в 23:50.


Отправлено: 23:35, 20-12-2009 | #6


Аватара для Hitsi

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


Извиняюсь что меня так долго не было...

Скрипт написанный выше отображает только локальный айпи адресс машины и все.
Покопавшись чуть выяснилось что существует нужный route в описании Win32_IP4RouteTable но там вместоайпиадреса интрфейса указывается его индекс.
В моем случае 3 одинаковых роута на 3 разных индекса. Один индекс это локалхост, второй - локальный адрес (сетевой адаптер), третий это нужный нам vpn. Проблема в том что в описании Win32_NetworkAdapter и Win32_NetworkAdapterConfiguration нет данного интерфейса вообще (с данным индексом)

т.е. интерфейс есть но описывается он где-то еще ( А вот где это хотелось бы знать

ЗЫ: wscript просто делает это в окошке... а нажимать на кнопку ок при выводе нового значения утомительно. Проще в консоле посмотреть сразу список

-------
Не стоит думать что все так плохо, все еще хуже... хуже до такой степени, что прышать хочется... хорошо что не с крыши.


Отправлено: 14:26, 29-01-2010 | #7


Аватара для Hitsi

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


Может кто-нибудь знает другой способ получить ip адрес присвоенный при подключении vpn не получая его с удаленного хоста?

-------
Не стоит думать что все так плохо, все еще хуже... хуже до такой степени, что прышать хочется... хорошо что не с крыши.


Отправлено: 19:46, 01-02-2010 | #8


Аватара для Hitsi

Новый участник


Сообщения: 24
Благодарности: 0

Профиль | Отправить PM | Цитировать


проблема все еще остается....
Нужно узнать IP адресс компа подключенного к впн, без запросов на другие сайты, для Windows 7 (и Vista) и затем удалить один маршрут.

Критерий только один - никакого дополнительного ПО ставить не надо.

-------
Не стоит думать что все так плохо, все еще хуже... хуже до такой степени, что прышать хочется... хорошо что не с крыши.


Отправлено: 23:23, 20-02-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Скрипт Visual Basic для определения IP в Windows 7 и XP

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход