1 (изменено: selevo, 2014-07-30 13:00:01)

Тема: WSH: Как узнать ip модема?

Задача заключается в том чтобы через модем
трафик шёл только при обращении к сети 88.12.12.12

до сих пор я делал так
rasdial megafon

делал route print
смотрел ip модема

затем прописывал нужный мне мрашрут
route add 88.12.12.12 MASK 255.255.255.255 10.247.56.193 METRIC 1
где 10.247.56.193  <- ip модема ранее посмотреный
хотелось бы автоматизировать

нашёл как прописать маршрут:

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("route add 88.12.12.12 mask 255.255.255.255 10.247.56.193"),0,True

осталось только  узнать как   автоматом подставить  ip модема

Звенящие кедры России В.Мегре. Знания хранимые дольменами,знания первоистоков. А.Саврасов

2

Re: WSH: Как узнать ip модема?

Модем имеется в виду свой локальный?

WBR. Roman

3

Re: WSH: Как узнать ip модема?

selevo, добавьте в названии темы префикс скриптового языка и оформите код специальным тегом.

4

Re: WSH: Как узнать ip модема?

да, ip модема внутренний
он каждый раз разный   даётся модему
похоже   в диаппазоне 10.24х.ххх.ххх

Звенящие кедры России В.Мегре. Знания хранимые дольменами,знания первоистоков. А.Саврасов

5 (изменено: selevo, 2014-07-30 13:41:01)

Re: WSH: Как узнать ip модема?

как это выглядит в консоли:
ip модема получился 10.248.156.57

C:\>rasdial
Связь с
modem
Команда успешно завершена.

C:\>route print
===========================================================================
Список интерфейсов
0x1 ........................... MS TCP Loopback interface
0x2 ...00 e0 52 ab 51 c1 ...... Realtek RTL8139 Family PCI Fast Ethernet NIC - ?шэшяюЁЄ яырэшЁют?шър яръхЄют
0x3 ...1c 6f 65 60 59 17 ...... Atheros AR8131 PCI-E Gigabit Ethernet Controller - ?шэшяюЁЄ яырэшЁют?шър яръхЄют
0x20005 ...00 1e 10 1f 87 2c ...... HUAWEI Mobile Connect - 3G Network Card #2 - ?шэшяюЁЄ яырэшЁют?шър яръхЄют
===========================================================================
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0        10.3.15.2     10.3.15.101       20
        10.3.15.0    255.255.255.0      10.3.15.101     10.3.15.101       20
      10.3.15.101  255.255.255.255        127.0.0.1       127.0.0.1       20
   10.255.255.255  255.255.255.255      10.3.15.101     10.3.15.101       20
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
        224.0.0.0        240.0.0.0      10.3.15.101     10.3.15.101       20
  255.255.255.255  255.255.255.255      10.3.15.101               2       1
  255.255.255.255  255.255.255.255      10.3.15.101     10.3.15.101       1
  255.255.255.255  255.255.255.255      10.3.15.101           20005       1
Основной шлюз:           10.3.15.2
===========================================================================
Постоянные маршруты:
  Отсутствует

C:\>rasdial modem
Установка связи с MODEM...
Проверка имени и пароля пользователя...
Регистрация компьютера в сети...
Установлена связь с MODEM.
Команда успешно завершена.

C:\>route print
===========================================================================
Список интерфейсов
0x1 ........................... MS TCP Loopback interface
0x2 ...00 e0 52 ab 51 c1 ...... Realtek RTL8139 Family PCI Fast Ethernet NIC - ?шэшяюЁЄ яырэшЁют?шър яръхЄют
0x3 ...1c 6f 65 60 59 17 ...... Atheros AR8131 PCI-E Gigabit Ethernet Controller - ?шэшяюЁЄ яырэшЁют?шър яръхЄют
0x20005 ...00 1e 10 1f 87 2c ...... HUAWEI Mobile Connect - 3G Network Card #2 - ?шэшяюЁЄ яырэшЁют?шър яръхЄют
0x50006 ...00 53 45 00 00 00 ...... WAN (PPP/SLIP) Interface
===========================================================================
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0        10.3.15.2     10.3.15.101       20
         10.0.0.0        255.0.0.0    10.248.156.57   10.248.156.57       1
        10.3.15.0    255.255.255.0      10.3.15.101     10.3.15.101       20
      10.3.15.101  255.255.255.255        127.0.0.1       127.0.0.1       20
    10.248.156.57  255.255.255.255        127.0.0.1       127.0.0.1       50
   10.255.255.255  255.255.255.255      10.3.15.101     10.3.15.101       20
   10.255.255.255  255.255.255.255    10.248.156.57   10.248.156.57       50
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1       1
        224.0.0.0        240.0.0.0      10.3.15.101     10.3.15.101       20
        224.0.0.0        240.0.0.0    10.248.156.57   10.248.156.57       50
  255.255.255.255  255.255.255.255      10.3.15.101               2       1
  255.255.255.255  255.255.255.255      10.3.15.101     10.3.15.101       1
  255.255.255.255  255.255.255.255      10.3.15.101           20005       1
  255.255.255.255  255.255.255.255    10.248.156.57   10.248.156.57       1
Основной шлюз:           10.3.15.2
===========================================================================
Постоянные маршруты:
  Отсутствует

C:\>
Звенящие кедры России В.Мегре. Знания хранимые дольменами,знания первоистоков. А.Саврасов

6

Re: WSH: Как узнать ip модема?

Предположу, что внутренний модем виден как сетевой адаптер. Вот, попробуйте скрипт просмотра сетевых конфигураций, имеющих IP:


Dim objWMIService, colNicConfigs, objNicConfig
Dim strQuery, strOut

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

strQuery = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"
Set colNicConfigs = objWMIService.ExecQuery (strQuery)

strOut = ""
For Each objNicConfig In colNicConfigs
  strOut = strOut & vbCrLf & "--8<-- (Caption) " & objNicConfig.Caption
    
  strDefaultIPGateway = Join(objNicConfig.DefaultIPGateway, ",")
  strOut = strOut & vbCrLf &  "DefaultIPGateway: " & vbTab & strDefaultIPGateway
    
  strOut = strOut & vbCrLf &  "Description: " & vbTab & objNicConfig.Description
    
  strIPAddress = Join(objNicConfig.IPAddress, ",")
  strOut = strOut & vbCrLf &  "IPAddress: " & vbTab & strIPAddress

  strIPSubnet = Join(objNicConfig.IPSubnet, ",")
  strOut = strOut & vbCrLf &  "IPSubnet: " & vbTab & vbTab & strIPSubnet
    
  strOut = strOut & vbCrLf &  "MACAddress: " & vbTab & objNicConfig.MACAddress
    
  strOut = strOut & vbCrLf
Next
MsgBox strOut,,strQuery
WBR. Roman

7

Re: WSH: Как узнать ip модема?

выдаёт ошибку

-------
Cцeнapий:              d:\IP.vbs
Cтpoкa:  13
Cимвoл:  3
Oшибкa: Heдoпycтимoe иcпoльзoвaниe Null: 'Join'
Кoд:        800A005E
Иcтoчник:               Oшибкa выпoлнeния Microsoft VBScrip

Звенящие кедры России В.Мегре. Знания хранимые дольменами,знания первоистоков. А.Саврасов

8

Re: WSH: Как узнать ip модема?

Если IP-адрес модема всегда находится на третьем интерфейе, то на AutoHotkey эта задача решалась бы в пару строк. В противном случае тоже можно решить, только код будет несколько длиннее.

9

Re: WSH: Как узнать ip модема?

AutoHotkey
тоже подходит для начального понимания работы
но  ip модема во второй строчке кстати
10.248.156.57

Звенящие кедры России В.Мегре. Знания хранимые дольменами,знания первоистоков. А.Саврасов

10

Re: WSH: Как узнать ip модема?

selevo пишет:

выдаёт ошибку

Oшибкa: Heдoпycтимoe иcпoльзoвaниe Null: 'Join'

Хмм.
Вот, пример с предварительной проверкой значений перед объединением элементов в одну строку через "Join()" (я убрал условие віборки " WHERE IPEnabled = True", т.е. увидим все имеющиеся конфигурации):


Dim objWMIService, colNicConfigs, objNicConfig
Dim strQuery, strOut

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

' strQuery = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True"
strQuery = "SELECT * FROM Win32_NetworkAdapterConfiguration "
Set colNicConfigs = objWMIService.ExecQuery (strQuery)

strOut = ""
For Each objNicConfig In colNicConfigs
    strOut = strOut & vbCrLf & "--8<-- (Caption) " & objNicConfig.Caption
    
    If IsArray(objNicConfig.DefaultIPGateway) Then
        strDefaultIPGateway = Join(objNicConfig.DefaultIPGateway, ",")
        strOut = strOut & vbCrLf &  "DefaultIPGateway: " & vbTab & strDefaultIPGateway
    End IF
    
    strOut = strOut & vbCrLf &  "Description: " & vbTab & objNicConfig.Description
    
    If IsArray(objNicConfig.IPAddress) Then
        strIPAddress = Join(objNicConfig.IPAddress, ",")
        strOut = strOut & vbCrLf &  "IPAddress: " & vbTab & strIPAddress
    End IF

    If IsArray(objNicConfig.IPSubnet) Then
        strIPSubnet = Join(objNicConfig.IPSubnet, ",")
        strOut = strOut & vbCrLf &  "IPSubnet: " & vbTab & vbTab & strIPSubnet
    End IF
    
  strOut = strOut & vbCrLf &  "MACAddress: " & vbTab & objNicConfig.MACAddress
    
    strOut = strOut & vbCrLf
Next

MsgBox strOut,,strQuery
WBR. Roman

11 (изменено: Rom5, 2014-07-31 16:58:05)

Re: WSH: Как узнать ip модема?

Кстати, в команде "route print" ведь можно и указать адрес, типа:


> route print -4 10.24*

А вывод команды "route print" можно тут же в батнике пропарсить командой FOR - если такое интересно, то поможем/подскажем.

WBR. Roman

12

Re: WSH: Как узнать ip модема?

selevo пишет:

AutoHotkey
тоже подходит для начального понимания работы
но  ip модема во второй строчке кстати
10.248.156.57

Я не совсем об этом. Вот Вы устанавливаете соединение с Мегафоном. При этом появляется интерфейс WAN (PPP/SLIP) Interface. Следующий код отображает IP-адреса первых четырех сетевых адаптеров в компьютере:

MsgBox, %A_IPAddress1% `r`n A_IPAddress2 `r`n A_IPAddress3 `r`n A_IPAddress4

Если число сетевых адаптеров (физических и виртуальных) на компьютере неизменно, то IP-адрес модема всё время будет в одной переменной (к примеру, %A_IPAddress3%). Тогда всё просто.
И даже если число адаптеров меняется, код не сильно усложнится.

13 (изменено: selevo, 2014-07-31 21:22:18)

Re: WSH: Как узнать ip модема?

понял,тестирую...

Звенящие кедры России В.Мегре. Знания хранимые дольменами,знания первоистоков. А.Саврасов

14 (изменено: selevo, 2014-07-31 22:11:47)

Re: WSH: Как узнать ip модема?

а как теперь мне сделать аналог  route add
что-то типа
route add 88.12.12.12 MASK 255.255.255.255 %A_IPAddress2%  METRIC 1

?

пол часа убил  на  справку  по AutoHotkey
очень замудрёный скриптовый язык

Звенящие кедры России В.Мегре. Знания хранимые дольменами,знания первоистоков. А.Саврасов

15

Re: WSH: Как узнать ip модема?

Run, здесь пишется всё то же, что и в командной строке

16

Re: WSH: Как узнать ip модема?

ypppu пишет:
Run, здесь пишется всё то же, что и в командной строке

благодарю
,подскажите литературку для изучения AutoHotkey
буду признателен.

Звенящие кедры России В.Мегре. Знания хранимые дольменами,знания первоистоков. А.Саврасов

17

Re: WSH: Как узнать ip модема?

В этой теме ссылка на последнюю версию AHK_L. Там при установке идёт в комплекте документация на английском.

У меня в подписи ссылка на старый сайт, там предыдущая версия AHK (которую теперь зовут AHK basic, или AHK classic).
Также ссылка на наш сайт, где можно посмотреть документацию на русском онлайн или скачать CHM-файлом.

В Вашем случае будет как-то так:

Run, rasdial megafon, , Hide ; Параметр Hide скрывает окно запущенной программы
Sleep, 5000 ; Ждём пять секунд установку связи
;Здесь можно проверить, что соединение прошло удачно
Run, route add 88.12.12.12 MASK 255.255.255.255 %A_IPAddress2%  METRIC 1, , Hide