PDA

Показать полную графическую версию : [решено] Как вывести в лог значения из arp -a


Страниц : 1 [2]

root221
16-07-2011, 04:01
Foreigner, а если не одна ?

Я, указал, две переменные, которые должны выходить в конфиг.

Желательно, чтобы переменные в конфиге, читались из указанных строк.

Например, со второй и 4-ей строки, а параметр который будет в первой и 3-й строке, не читались вобще, т.к это будет коментарий, к двум параметрам, указанных ниже.


LOG=arp.log
ARP=ON

Iska
16-07-2011, 05:52
; Мой комментарий 1
LOG=arp.log
; Мой комментарий 2
ARP=ON
for /f "tokens=* eol=;" %%i in (config.cfg) do 1>nul set "%%i"

Foreigner
16-07-2011, 07:16
root221,
Да хоть сто одна, все переменные определятся. Если есть комментарии, то прими поправку от Iska.

root221
16-07-2011, 08:10
У меня есть такой интерестный скрипт, который обсуждали в другой теме, но напишу его сдесь, с надежной, что вы мне тут же и поможете, сделать для него конфиг.

И вот он:


(for /l %%a in (1,1,254) do Echo CreateObject^("WScript.Shell"^).Run "ping -w 100 -n 1 10.0.0.%%a",0
Echo WScript.Sleep^(3000^))>"%TEMP%\%~n0.vbs"
cscript /Nologo "%TEMP%\%~n0.vbs"
del "%TEMP%\%~n0.vbs"

пример

in (1,1,254) - 254 переписать в переменную и вывести в конфиг чтобы было вот так 10.0.13.254

10.0.13.%%a - ну и вот это, тоже в переменную. (А вот как сделать чтобы вот это число %%a было последним как выделенно в будущем конфиг файле)

например, чтобы я написал в файле конфига 254.254.254.254 и просканировались все 254.254.254.254 компьютеров.

Канечно же, как вы уже догадались, так я сканировать никогда небуду, просто я к тому, чтобы я мог в конфиге мог написать 10.0.13.254

и все компьютеры, c 1 по 254 просканировались, которые находятся в 13 подсети Это число тоже хотелось бы менять произвольно на другой номер подсети.

Как же это можно сделать, чтобы не писать отдельно число 254 в файле скрипта, создавая для него ещё одну переменную, внутри скрипта.

Вот так я бы хотел чтобы выглядел весь конфиг файл:

# Файл в котором хрянятся логи кэша
LOG=file.txt
# Вывод в консоль ON= Только компьютеры, которых в момент проверки небыло в кэше.
# Вывод в консоль OFF= Только компьютеры, которые есть в списке лог файла.
ARP=ON

# Адрес сканирования, ((254) - количество запросов).
10.0.13.254


В данны момент, пока что мозгов хватило только на:


# Файл в котором хрянятся логи из таблицы кэша
LOG=file.txt
# Вывод в консоль ON= Только компьютеры, которых в момент проверки небыло в кэше.
# Вывод в консоль OFF= Только компьютеры, которые есть в списке лог файла.
ARP=ON

# Адрес сканирования, ((254) - количество запросов).
IPAddr=10.0.13.
IPNum=254


Foreigner, Да хоть сто одна, все переменные определятся. Если есть комментарии, то прими поправку от Iska. »

Я только начал вникать, если что не так сказал, извини.)

твой скрипт работал, просто ошибки были, когда комментарии оставлял в конфиге, поэтому решил спросить, "а если не одна" =)

Foreigner
16-07-2011, 08:43
root221,
Подставь те переменные, что указаны в конфиге в батник, например:

@echo off
setlocal

for /f "tokens=* eol=#" %%i in (config.cfg) do 1>nul set "%%i"

(for /l %%a in (1,1,%IPNum%) do ... "ping -w 100 -n 1 %IPAddr%%%a ...


ЗЫ. А зачем vbs из батника? Ведь все это можно и без vbs

Я только начал вникать, если что не так сказал, извини.)
За что? Ты спросил я ответил.

root221
16-07-2011, 09:40
Подставь те переменные, что указаны в конфиге в батник, например:

@echo off
setlocal
for /f "tokens=* eol=#" %%i in (config.cfg) do 1>nul set "%%i"
(for /l %%a in (1,1,%IPNum%) do ... "ping -w 100 -n 1 %IPAddr%%%a ... »

Вы мне ещё написали несовсем так, как я хотел, вы мне написали так, как у меня сейчас сделано, о чём я писал выше.

Config.cfg
Заметтьте, я хотел чтобы число писалось не отдельно, как у вас %IPNum%, а слитно вместе с IP

чтобы не так было:



IPAddr=10.0.13.
IPNum=254


а вот, так


IPAddr=10.0.13.254

Foreigner
16-07-2011, 13:35
потому что я просто обновляю арп кеш, т.к через vbs посылается разом 254 запроса а если через cmd то по 1-му каждые 100 милисекунд »
Единственный плюс для vbs -- не создаются окна. А пинг и в cmd идет одновременно по всем адресам:

for %%i in (ya.ru mail.ru google.ru) do start ping -n 11 %%i

root221
18-07-2011, 12:07
»

Про такой приём я знаю, вот только 255 компьютеров вбивать в одну строку, я устану.

for /l %%a in (1,1,254) do ping -w 100 -n 1 10.0.0.%%a

255 окон открывается разом а через VBS этого невидно.

root221
18-07-2011, 12:48
так что насчёт конфига ? его вобще можно сделать ?

хотябы

s=10.0.0.1
po=10.0.0.254

amel27
18-07-2011, 16:53
так что насчёт конфига ? »
пост #29 (http://forum.oszone.net/post-1714385-29.html)

amel27
20-07-2011, 12:41
вот конфиг
Код:
IPAddress=10.0.13.
IPCos=254
Ещё раз повторюсь, а хочу я, чтобы было именно так!
Код:
IPAddress=10.0.13.254 »
@echo off

for /f "tokens=*" %%i in (config.cfg) do set "%%i">nul
for /f "tokens=4 delims=." %%i in ("%IPAddress%") do set "IPCos=%%i"

set IP
pause

amel27
21-07-2011, 03:42
ip=10.0.13.254 »
было же вроде так:
Ещё раз повторюсь, а хочу я, чтобы было именно так!
Код:
IPAddress=10.0.13.254 »




© OSzone.net 2001-2012