Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Сетевые технологии (http://forum.oszone.net/forumdisplay.php?f=31)
-   -   Помогите настроить роутинг (http://forum.oszone.net/showthread.php?t=134524)

DjGiza 12-03-2009 13:06 1061554

Помогите настроить роутинг
 
Пользуюсь вот таким скриптом
Код:

Set LocalIP=10.163.160.1
Set GlobalIP=92.50.168.173
route add 10.0.0.0 mask 255.0.0.0 %LocalIP%
route add 172.27.0.0 mask 255.255.0.0 %LocalIP%
route add 77.79.128.0 mask 255.255.192.0 %LocalIP%
route add 81.30.176.0 mask 255.255.240.0 %LocalIP%
route add 81.30.192.0 mask 255.255.224.0 %LocalIP%
route add 89.189.128.0 mask 255.255.224.0 %LocalIP%
route add 94.41.0.0 mask 255.255.0.0 %LocalIP%
route add 92.50.128.0 mask 255.255.192.0 %LocalIP%
route add 194.0.68.0 mask 255.255.252.0 %LocalIP%
route add 79.140.16.0 mask 255.255.240.0 %LocalIP%
route add 81.30.199.50 mask 255.255.255.255 %GlobalIP%
route add 81.30.199.69 mask 255.255.255.255 %GlobalIP%
route add 81.30.199.70 mask 255.255.255.255 %GlobalIP%
route add 81.30.197.10 mask 255.255.255.255 %GlobalIP%
route add 81.30.199.84 mask 255.255.255.255 %GlobalIP%
route add 81.30.199.238 mask 255.255.255.255 %GlobalIP%

где LocalIP - локальный шлюз который не меняется
GlobalIP - меняется при каждом переподключении

Вопрос: Как можно автоматизировать данный процесс, чтобы он сам вписывал нужный шлюз. А то каждый раз ручками это делать не охота

czecz 12-03-2009 15:07 1061719

наверное вычислять предварительно как-то ваш GlobalIP тоже скриптом? :)

Petya V4sechkin 12-03-2009 17:46 1061904

DjGiza, пример скрипта для получения адреса шлюза:
Код:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Set IntN="Подключение по локальной сети"
For /F "Tokens=1* Delims=:" %%I In ('netsh int ip show address %IntN%') Do (
  If "%%I"=="    Основной шлюз" (
    Set GW=%%J
    Set GW=!GW: =!
    Echo !GW!
  )
  If "%%I"=="    Default Gateway" (
    Set GW=%%J
    Set GW=!GW: =!
    Echo !GW!
  )
)

в переменной IntN задано имя интерфейса, результат в переменной GW.
Батник должен быть в кодировке 866 (если русская система), проверял на XP и 2003.

DjGiza 12-03-2009 19:03 1061968

Код:

C:\Routing3>SetLocal EnableExtensions EnableDelayedExpansion

C:\Routing3>Set IntN="Подключение по локальной сети"

C:\Routing3>For /F "Tokens=1* Delims=:" %I In ('netsh int ip show address "Подкл
ючение по локальной сети"') Do (
If "%I" == "    Основной шлюз" (
Set GW=%J
 Set GW=!GW: =!
 Echo !GW!
)
 If "%I" == "    Default Gateway" (
Set GW=%J
 Set GW=!GW: =!
 Echo !GW!
)
)

C:\Routing3>(
If "Настройка интерфейса "Подключение по локальной сети"" == "    Основной шлюз"
 (
Set GW=
 Set GW=!GW: =!
 Echo !GW!
)
 If "Настройка интерфейса "Подключение по локальной сети"" == "    Default Gatew
ay" (
Set GW=
 Set GW=!GW: =!
 Echo !GW!
)
)

C:\Routing3>(
If "    DHCP разрешен" == "    Основной шлюз" (
Set GW=                        Да
 Set GW=!GW: =!
 Echo !GW!
)
 If "    DHCP разрешен" == "    Default Gateway" (
Set GW=                        Да
 Set GW=!GW: =!
 Echo !GW!
)
)

C:\Routing3>(
If "    Метрика интерфейса" == "    Основной шлюз" (
Set GW=                  0
 Set GW=!GW: =!
 Echo !GW!
)
 If "    Метрика интерфейса" == "    Default Gateway" (
Set GW=                  0
 Set GW=!GW: =!
 Echo !GW!
)
)

Что не правильно делаю?

Petya V4sechkin 12-03-2009 23:04 1062189

DjGiza, значит, ничего у вас не настроено на интерфейсе "Подключение по локальной сети".
Приведите результаты выполнения ipconfig /all при подключенном инете.

DjGiza 12-03-2009 23:59 1062238

Вот
Код:

C:\Documents and Settings\Admin>ipconfig /all

Настройка протокола IP для Windows

        Имя компьютера  . . . . . . . . . : microsof-4794f8
        Основной DNS-суффикс  . . . . . . :
        Тип узла. . . . . . . . . . . . . : неизвестный
        IP-маршрутизация включена . . . . : нет
        WINS-прокси включен . . . . . . . : нет
        Порядок просмотра суффиксов DNS . : ufanet.ru

Подключение по локальной сети - Ethernet адаптер:

        DNS-суффикс этого подключения . . : ufanet.ru
        Описание  . . . . . . . . . . . . : Realtek RTL8139/810x Family Fast Eth
ernet NIC
        Физический адрес. . . . . . . . . : 00-04-61-6E-5E-EB
        Dhcp включен. . . . . . . . . . . : да
        Автонастройка включена  . . . . . : да
        IP-адрес  . . . . . . . . . . . . : 10.163.160.76
        Маска подсети . . . . . . . . . . : 255.255.255.128
        Основной шлюз . . . . . . . . . . : 10.163.160.1
        DHCP-сервер . . . . . . . . . . . : 10.163.160.1
        DNS-серверы . . . . . . . . . . . : 81.30.199.5
                                            81.30.199.94
        Аренда получена . . . . . . . . . : 13 марта 2009 г. 1:49:07
        Аренда истекает . . . . . . . . . : 13 марта 2009 г. 2:49:07

anlim - PPP адаптер:

        DNS-суффикс этого подключения . . :
        Описание  . . . . . . . . . . . . : WAN (PPP/SLIP) Interface
        Физический адрес. . . . . . . . . : 00-53-45-00-00-00
        Dhcp включен. . . . . . . . . . . : нет
        IP-адрес  . . . . . . . . . . . . : 94.41.66.69
        Маска подсети . . . . . . . . . . : 255.255.255.255
        Основной шлюз . . . . . . . . . . : 94.41.66.69
        DNS-серверы . . . . . . . . . . . : 81.30.199.5
                                            81.30.199.94

Если вместо "Подключение по локальной сети" писать например подключение "anlim" то пишет что не найден

Petya V4sechkin 13-03-2009 11:54 1062574

DjGiza, прошу прощения, netsh int ip show address выводит только статический адрес.
Тогда придется ковырять Ipconfig, примерно так:
Код:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

Set Desc=Подключение по локальной сети - Ethernet адаптер
Set Found=
Set GW=
For /F "Tokens=1* Delims=:" %%I In ('Ipconfig') Do (
  If "%%I"=="%Desc%" (
    Set Found=1
  ) Else (
    If "!Found!"=="1" (
      Set V=%%I
      Set V=!V: =!
      Set V=!V:.=!
      If "!V!"=="Состояниесети" GoTo Finish
      If "!V!"=="MediaState" GoTo Finish

      If "!V!"=="Основнойшлюз" (
        Set GW=%%J
        GoTo Finish
      )
      If "!V!"=="DefaultGateway" (
        Set GW=%%J
        GoTo Finish
      )
    )
  )
)
:Finish
If Not "!GW!"=="" (
  Set GW=!GW: =!
  Set GW=!GW:~0,-1!
)
Echo !GW!

на этот раз сохранять батник в кодировке 1251 (так Ipconfig выводит).
Переменную Desc можете поменять:
Код:

Set Desc=anlim - PPP адаптер

DjGiza 13-03-2009 12:07 1062582

Petya V4sechkin,
спасибо большое. все заработало

Petya V4sechkin 13-03-2009 12:37 1062606

DjGiza, я там еще добавил пару строк (на случай, если сеть отключена).


Время: 16:50.

Время: 16:50.
© OSzone.net 2001-