![]() |
Имеется динамический IP по PPPoE от провайдера, надо записать и использовать с *.bat
Приветствую уважаемые, заранее извиняюсь если подобная тема была, поиск не очень помог :( Появилась задачка, вот условия: провайдер продает доступ в городскую сеть (с одинаковым адресом с инетом/без него) с динамическим ип по туннелю PPPoE. Наряду с этим в городе есть куча провайдеров, продающие интернет по PPTP, всвязи с этим появилась необходимость автоматизировать настройку маршрутизации между туннелями. Провайдер PPPoE дает на своем сайте свежий список сетей, относящиеся к городу в виде батника (а так же есть текстовая страница, публикуемая на том же сайте, с настраиваемым представлением вывода), см. содержимое, назовем этот батник "routecity.bat"
который предлагается провайдерами PPTP запускать в "Выполнить" вместе с вручную написанным ип от PPPoE, прочтенным с ipconfig, либо из состояния соединения PPPoE, что есть очень неудобно. Так вот: Нужно написать батник/цмд, который бы работал как в XP так и в 7ке, который бы брал ип из интерфейса "PPPoE" и подставлял его вместо %1-переменной в "routecity.bat" - либо переписывал его, либо запускался как единый скрипт не трогая содержимого "routecity.bat". Ну или вовсе - батник, который брал бы список сетей с текстовой страницы провайдера и подставив ип менял таблицу маршрутизации. Заранее благодарен помощи, нужда в таком батничке есть у большого количества пользователей данного хитросплетения сетей. |
Насколько помню, при поднятии на компе PPPoE винда обычно тутже меняет "шлюз по умолчанию" на IP шлюза, полученного при соединении. т.е. все уже должно быть.
Приведите плиз пример, что выдает ipconfig /all до соединения и после, а заодно route print и собственно IP который надо указать в качестве параметра. |
gromex
проблема осложняется вычленением IP-адреса из информации о конфигурации сети, потому что: 1) количество сетевых интерфейсов у всех разное 2) порядок сетевых интерфейсов у всех разный 3) количество PPPOE-соединений может быть более одного 4) логическое имя соединения у всех разное напишите все параметры соединения подключения к прову маска, IP, servername, gateway и пр.. а лучше всего - диапазон внешних IP PPPoE прова |
Цитата:
Собственно уточню, когда нам нужен запуск батничка - сразу после поднятия PPPoE, и до поднятия PPTP. Так как PPPoE поднят - мы можем считать полученный ip, который то и надо предварительно указать в таблице маршрутизации машины перед сменой основного шлюза. Цитата:
2) Вытекает из 1 3) Опустим данную возможность, пока это редко кому нужно 4) См п.1 Привожу ipconfig /all запущенные в разное время (в цитатах описано когда именно), Взято в windows 7: http://paste.org.ru/?9ival8 http://paste.org.ru/?vifuym http://paste.org.ru/?kg43bi Так же route print: http://paste.org.ru/?wb8k8i http://paste.org.ru/?xibdsu Диапазоны провайдера PPPoE: http://www.db.ripe.net/whois?form_ty..._search=Search http://www.db.ripe.net/whois?form_ty..._search=Search Забыл добавить - таблица маршрутов чистится при автозагрузке нехитрым батничком от того же провайдера но уже без %1-параметра IP адреса, убивается просто какая бы то нибыло запись содержащая адрес сети. |
Код:
@echo off |
gromex
пользуйтесь на здоровье http://forum.oszone.net/attachment.p...1&d=1270212497 программа, если у вас есть какой либо IP из диапазона 90.188.64.0-90.188.71.255, 90.188.96.0-90.188.107.255 запустит файл routecity.bat и передаст в качестве параметра ему этот IP |
Благодарю за внимание и труд, протестирую оба варианта как доберусь до подопытной машины
|
gromex
то же самое только программа, если у вас есть какой либо Default Gateway IP address из диапазона 90.188.64.0-90.188.71.255, 90.188.96.0-90.188.107.255 запустит файл routecity.bat и передаст в качестве параметра ему этот IP http://forum.oszone.net/attachment.p...1&d=1270213682 |
zonderz, Еще раз Спасибо за усилия. На вин7 тест пока идет боком изза сумятицы с правами на выполнение.. пока разбираюсь
на хр еще не тестировал. Да, кстати надо в sibr2 добавить http://www.db.ripe.net/whois?form_ty..._search=Search |
Добрый день.
Чтоб не начинать новую тему, попрошу помощи в этой, т.к. выполнение задачи очень похоже. Существует плеер для IPTV (ip-tv player), в котором можно вручную выбирать интерфейс по текущему IP. Но есть файлик настроек (provider.ini), в котором можно указать приоритетную сеть, в которой находиться IP. Подключение у провайдера локалка (DHCP) + PPPoE. Вещание IPTV идет только по локальной сети. Проблема в том, что провайдер использует несколько диапазонов IP (сетей), а именно 10.X.X.X и 192.168.X.X. Как я понимаю, скрипт будет аналогичен тому, который посоветовал NiOl. Нужно определить из какого диапазона шлюз используеться для локальной сети, а конкретно он начинаеться на "10" или на "192.168", после чего записать в файлик настроек (provider.ini) строку с диапазонов IP (10.0.0.0/8 либо 192.168.0.0/16). Вроде бы должно быть так, но вместо ??? должна быть команда, которая проверяет начинаеться ли GW на 10, или на 192, или на что-то другое, тогда ничего и искать сл. шлюз (их есстественно 2) . Код:
for /f "tokens=3" %%A in ('route print ^| findstr /r /c:" 0.0.0.0 * 0.0.0.0 "') do ( |
Цитата:
Вообще, возни с подсчетом маски вышло... Код:
@echo off |
NiOl
Спасибо большое, хорошо работает. :up Неудобно даже просить... Возни с маской оказываеться не надо, моя вина, неправильно указал задачу :sorry: Нужно в файлик настроек записвать маску в привычной форме (255.255...). |
Цитата:
Код:
@echo off |
NiOl, Добрался я таки до тестируемой машины и что показал тест.. не всегда вычисляется тот самый динамический ип от пппое, скриптом у меня брался локальный :( так как в route print 2 строки содержащие 0.0.0.0 0.0.0.0, напротив пппое интерфейса и локального соответственно..
|
Сюда кидаем результат route print - бум смотреть. (всяких разных вариантов предусмотреть сложно - для примера у меня почти отлаженный скрипт для пинга сети и анализа изменений по логам, проверенный и с несколькими сетевушками и на русских виндах и на семерке вдруг перестал работать при подключении BT-адаптера на моем же компе.)
|
Время: 14:38. |
Время: 14:38.
© OSzone.net 2001-