Крымский форум (Crimea-Board) Поиск Участники Помощь Текстовая версия Crimea-Board.Net
Здравствуйте Гость .:: Вход :: Регистрация ::. .:: Выслать повторно письмо для активации  
 
> Рекламный блок.
 

Реклама на форуме

 
> Ваша реклама, здесь
 
 
 

Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению ) Start new topic Start Poll 

> Как получить IP?
pedrosoft |
Дата 16 Июля, 2008, 18:25
Quote Post



Unregistered









Требуется написать bat-скрипт прописки маршрутов но при прописке в маршрутизации требуется указать IP машины на которой маршруты прописываются. Хотелось бы автоматизировать процесс но не знаю какой командой получить IP что б подставить её в скрипт

Спасибо!

Отредактировал pedrosoft - 16 Июля, 2008, 18:27
7/   
Бобер | Бездомный
Реклама двигатель прогресса       
Quote Post



А кому сча лехко?
Group Icon
















_________________
Желающим разместить рекламу смотреть сюдой
/   
SwD |
Дата 16 Июля, 2008, 18:42
Quote Post



Unregistered









Цитата(pedrosoft @ 16 Июля, 2008, 18:25)
какой командой получить IP

ipconfig, если речь о винде... и потом в тот же awk, чтоб на выходе получить только ip-адрес
5/   
pedrosoft |
Дата 16 Июля, 2008, 19:01
Quote Post



Unregistered









да речь идет о винде

а не что то попроще что б просто в bat-скрипте вставить ну например:
route -p add 172.16.0.0 mask 255.255.0.0 "и_вот_тут_команда_для_получения_IP_машины_на_которой_запущен_скрипт"
4/   
drood |
Дата 17 Июля, 2008, 0:44
Quote Post



Unregistered









Цитата(pedrosoft @ 16.07.2008, 18:01:36, 191595)
и_вот_тут_команда_для_получения_IP_машины_на_которой_запущен_скрипт

На шлюзе батничек запускать будете? И какой смысл в этом скрыт?
Или это генерация на основе текущего адреса роутера? И часто у последнего меняются адреса? rolleyes.gif

Батником, конечно, извратиться можно, но не проще ли скрипт на JS/VBS написать?
5/   
SwD |
Дата 17 Июля, 2008, 15:28
Quote Post



Unregistered









Цитата(pedrosoft @ 16 Июля, 2008, 19:01)
что то попроще

Код
C:\>ipconfig | grep IP-адрес | gawk -v FS=: "{print $2}"
10.7.0.200

C:\>
6/   
drood |
Дата 17 Июля, 2008, 18:37
Quote Post



Unregistered









SwD
Код
ipconfig | perl -e "join('', <>) =~ /([d.]{7,15})/; print $1"
вывод первого IP-адреса первого интерфейса, независимо от языка ОС.
3/   
SwD |
Дата 17 Июля, 2008, 19:39
Quote Post



Unregistered









drood
Да, так универсальнее, согласен.
pedrosoft |
Дата 17 Июля, 2008, 19:53
Quote Post



Unregistered









запускаться будет на машинах клиентов. в сети нет шлюха поэтому приходится прописывать маршрут напрямую указывая ip клиента

только вот откуда на обычной виндовой машине клиента возьмется grep, perl, awk
2/   
SwD |
Дата 17 Июля, 2008, 21:41
Quote Post



Unregistered









pedrosoft
Ну тогда таки JScript или VBScript, завтра гляну на примерный код... Но это тоже не панацея smile.gif
Можно еще поглядеть на команды netsh (netsh interface ip show address и т.д.)...
4/   
Iverton |
Дата 17 Июля, 2008, 22:18
Quote Post



Unregistered









Цитата(pedrosoft @ 17 Июля, 2008, 18:53)
только вот откуда на обычной виндовой машине клиента возьмется grep, perl, awk


RSDN говорит вот что

Цитата


Можно ли написать на bat-языке серьезную программу?

Пожалуй, нет. Серьезная программа должна все-таки выглядеть серьезно. А все написанное на командном языке Windows таковым назвать можно лишь с о-о-о-чень большой натяжкой. Так что для решения более сложных задач автоматизации лучше все-таки взять что-нибудь более функциональное:

    * Perl
    * Python
    * Ruby
    * JScript / VBScript

Последние, кстати, присутствуют в Windows 2000/XP по умолчанию (с некоторыми функциональными различиями) и в целом могут считаться заменой *.bat языку. Однако сдается мне, что *.bat-файлы проживут еще очень долго.

Дай Бог, чтобы я ошибся

http://www.rsdn.ru/article/winshell/batanyca.xml
8/   
Пэтро |
Дата 17 Июля, 2008, 23:08
Quote Post



Unregistered









Цитата(SwD @ 17 Июля, 2008, 21:41)
Можно еще поглядеть на команды netsh (netsh interface ip show address и т.д.)...

Нифига.... Один лишь айпи не выводит..
2/   
pedrosoft |
Дата 18 Июля, 2008, 23:48
Quote Post



Unregistered









вообщем как я понял простой скрипт на bat в винде простым способом не написать((
я и JScript, VBScript не знаю((

ну буду признателен если кто то покажет пример на этих языках. можно ещё и делфи ))
5/   
SwD |
Дата 19 Июля, 2008, 16:08
Quote Post



Unregistered









Цитата(pedrosoft @ 18 Июля, 2008, 23:48)
скрипт на bat в винде простым способом не написать

О да, это вы верно подметили... Потому-то и приходится изобретать варианты с awk, grep, perl smile.gif
Но в данном случае таки можно обойтись только силами самой винды:
Код
C:\>for /F "usebackq skip=4 tokens=8" %i in ('tracert -d %COMPUTERNAME%') do @if not %i=="" @set local_ip=%i

C:\>echo %local_ip%
10.7.0.200


Намёк понятен? smile.gif
Работает как в W2K SP4, так и WXP SP2...
7/   
drood |
Дата 19 Июля, 2008, 21:09
Quote Post



Unregistered









Цитата(SwD @ 19.07.2008, 15:08:34, 192023)
Но в данном случае таки можно обойтись только силами самой винды

Снимаю шляпу smile.gif
pedrosoft |
Дата 20 Июля, 2008, 15:04
Quote Post



Unregistered









Тоже снимаю шляпу. bye1.gif

Но все же прошить маршрут не получилось. Пробывал несколько вариантов. Может кто поможешь. Вот что требуется прошить:

route -p add 192.168.5.0 mask 255.255.255.0 IP_машины

как получить IP_машины SwD написал но как его правильно подставить в строку...
4/   
SwD |
Дата 20 Июля, 2008, 16:37
Quote Post



Unregistered









Цитата(pedrosoft @ 20 Июля, 2008, 15:04)
но как его правильно подставить в строку

Ну как-то так:
route -p add 192.168.5.0 mask 255.255.255.0 %local_ip%
1/   
3bab00n |
Дата 20 Июля, 2008, 17:14
Quote Post



Unregistered









Вот так вот можно:

Код
@echo off
For /F "UseBackQ skip=7 tokens=2 delims=:" %%I In ('ipconfig') Do (
   route.exe -p add 192.168.5.0 mask 255.255.255.0%%I
   exit /b
)
1/   
pedrosoft |
Дата 22 Июля, 2008, 23:51
Quote Post



Unregistered









no.gif

ни 1 ни 2 вариант не работают

в первом если пишу pause он даже не останавливает м.б. в нем ошибка и он сам завершается
во втором похоже к переменной (или как она тут называется) %%I не присваивается ip машины
3bab00n |
Дата 23 Июля, 2008, 0:08
Quote Post



Unregistered









@echo off
For /F "UseBackQ skip=7 tokens=2 delims=:" %%I In ('ipconfig') Do (
route.exe -p add 192.168.5.0 mask 255.255.255.0%%I
exit /b
)
1/   
3bab00n |
Дата 23 Июля, 2008, 0:18
Quote Post



Unregistered









Походу глюк на форуме (или фича такая), почему то вставляются не те кавычки.
Надо заменить кавычки обрамляющие ipconfig на знак ударения (который с тильдой на одной клавише, код в таблице символов 0x60).
1/   

Topic OptionsСтраницы: (2) [1] 2  Start new topic Start Poll 

 



[ Script Execution time: 0.0142 ]   [ 12 queries used ]   [ GZIP включён ]






Политика конфиденциальности

Top