Крымский форум (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



Посторонний
Group Icon

Группа: VIP
Сообщений: 3750
Регистрация: 26.08.03
Авторитет: 12
Вне форума

Предупреждения:
(0%) -----


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

ipconfig, если речь о винде... и потом — в тот же awk, чтоб на выходе получить только ip-адрес


____________________
Вот и всё, что было, не было и нету.
Правильно и ясно, здорово и вечно...
PM
5/10181   
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




Group Icon

Группа: VIP
Сообщений: 1307
Регистрация: 07.02.05
Авторитет: 0
Вне форума

Предупреждения:
(0%) -----


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

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

Батником, конечно, извратиться можно, но не проще ли скрипт на JS/VBS написать?


____________________
«Любое положение в этом мире — только видимость, и единственная реальность — это мысль.»
PM
5/3327   
SwD | Профиль
Дата 17 Июля, 2008, 15:28
Quote Post



Посторонний
Group Icon

Группа: VIP
Сообщений: 3750
Регистрация: 26.08.03
Авторитет: 12
Вне форума

Предупреждения:
(0%) -----


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

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

C:\>


____________________
Вот и всё, что было, не было и нету.
Правильно и ясно, здорово и вечно...
PM
6/10181   
drood | Профиль
Дата 17 Июля, 2008, 18:37
Quote Post




Group Icon

Группа: VIP
Сообщений: 1307
Регистрация: 07.02.05
Авторитет: 0
Вне форума

Предупреждения:
(0%) -----


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


____________________
«Любое положение в этом мире — только видимость, и единственная реальность — это мысль.»
PM
3/3327   
SwD | Профиль
Дата 17 Июля, 2008, 19:39
Quote Post



Посторонний
Group Icon

Группа: VIP
Сообщений: 3750
Регистрация: 26.08.03
Авторитет: 12
Вне форума

Предупреждения:
(0%) -----


drood
Да, так универсальнее, согласен.


____________________
Вот и всё, что было, не было и нету.
Правильно и ясно, здорово и вечно...
PM
pedrosoft |
Дата 17 Июля, 2008, 19:53
Quote Post



Unregistered









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

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



Посторонний
Group Icon

Группа: VIP
Сообщений: 3750
Регистрация: 26.08.03
Авторитет: 12
Вне форума

Предупреждения:
(0%) -----


pedrosoft
Ну тогда таки JScript или VBScript, завтра гляну на примерный код... Но это тоже не панацея smile.gif
Можно еще поглядеть на команды netsh (netsh interface ip show address и т.д.)...


____________________
Вот и всё, что было, не было и нету.
Правильно и ясно, здорово и вечно...
PM
4/10181   
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




Group Icon

Группа: Banned
Сообщений: 7119
Регистрация: 15.06.05
Авторитет: 1
Вне форума

Предупреждения:
(0%) -----


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

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



Unregistered









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

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



Посторонний
Group Icon

Группа: VIP
Сообщений: 3750
Регистрация: 26.08.03
Авторитет: 12
Вне форума

Предупреждения:
(0%) -----


Цитата(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...


____________________
Вот и всё, что было, не было и нету.
Правильно и ясно, здорово и вечно...
PM
7/10181   
drood | Профиль
Дата 19 Июля, 2008, 21:09
Quote Post




Group Icon

Группа: VIP
Сообщений: 1307
Регистрация: 07.02.05
Авторитет: 0
Вне форума

Предупреждения:
(0%) -----


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

Снимаю шляпу smile.gif


____________________
«Любое положение в этом мире — только видимость, и единственная реальность — это мысль.»
PM
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



Посторонний
Group Icon

Группа: VIP
Сообщений: 3750
Регистрация: 26.08.03
Авторитет: 12
Вне форума

Предупреждения:
(0%) -----


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

Ну как-то так:
route -p add 192.168.5.0 mask 255.255.255.0 %local_ip%


____________________
Вот и всё, что было, не было и нету.
Правильно и ясно, здорово и вечно...
PM
1/10181   
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.0825 ]   [ 12 queries used ]   [ GZIP включён ]


Создание и продвижение сайтов в Крыму



Top