 |
|
Помогите настроить роутинг
Пользуюсь вот таким скриптом
Код:
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 - меняется при каждом переподключении
Вопрос: Как можно автоматизировать данный процесс, чтобы он сам вписывал нужный шлюз. А то каждый раз ручками это делать не охота
|
наверное вычислять предварительно как-то ваш 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.
|
Код:
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 при подключенном инете.
|
Вот
Код:
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 адаптер
|
Petya V4sechkin,
спасибо большое. все заработало
|
Petya V4sechkin |
13-03-2009 12:37 1062606 |
DjGiza, я там еще добавил пару строк (на случай, если сеть отключена).
|
Время: 16:50.
© OSzone.net 2001-