![]() |
Как вывести в лог значения из arp -a
Вобщем такая задача, надо чтобы собиралась информация
из arp -a и в лог записывались, только два значения. Код:
|
Код:
@echo off |
Цитата:
Цитата:
Код:
@echo off |
Цитата:
Цитата:
Код:
@echo off Цитата:
Цитата:
1) добавление в конец IP-адреса 8 пробелов, 2) обрезание строки по длине 15 символов. |
root221, как вариант:
Код:
@echo off |
Цитата:
|
Цитата:
...можете проверить сами (без учета заголовка): Код:
sort ARP.LOG |
Код:
10.0.0.1 001234567890 Код:
а надо |
root221, о том и речь, что сортировка может быть разной:
Код:
@echo off |
Цитата:
Код:
@echo off |
спасибо
ещё проблемка например меняю в списке MAC адрес, в ручную Код:
12.34.56.78 1234567890 Код:
12.34.56.78 0987654321 в списке arp -a как должно быть, только в логе он не изменяется в кеше арп он написан так: Код:
12.34.56.78 1234567890 |
Цитата:
|
эта машина включена, в арп кеше, мак адрес другой.
в предыдущем скрипте, если мак адрес в кеше другой а в списке другой, тогда его меняет на тот, который щас в данный момент в списке кеша. |
просто мне нужно было если например
та машина у которой адрес был 12.34.56.78 1234567890 изменила свой ip на 12.34.56.79 то старая запись ip,mac удалялась, если мак совпал, с новой записью из кеша. И записывалась новая 12.34.56.79 1234567890 |
root221, вроде понял о чем речь, исправил (#17)
|
да действительно всё работает.
|
Как после окончания всех записей в лог файл, вывести в консоль список, только тех компьютеров, которые присутствуют только в списке
Код:
%LOG% Пример, вывода в консоль: Код:
Этих компьютеров из вашего списка %LOG%, небыло в списке кэша arp/a, в момент выполнения скрипта. |
Код:
@echo off |
как сделать ещё конфиг для переменных %LOG% и %ARP%
чтобы настройки переменных хранились в отдельном файле конфигурации например config.cfg Код:
LOG=arp.log |
root221,
Если формат конфига: одна строчка -- имя_переменной=значение, то просто прочитать из батника: Код:
for /f "tokens=*" %%i in (config.cfg) do 1>nul set "%%i" |
Foreigner, а если не одна ?
Я, указал, две переменные, которые должны выходить в конфиг. Желательно, чтобы переменные в конфиге, читались из указанных строк. Например, со второй и 4-ей строки, а параметр который будет в первой и 3-й строке, не читались вобще, т.к это будет коментарий, к двум параметрам, указанных ниже. Код:
LOG=arp.log |
Код:
; Мой комментарий 1 Код:
for /f "tokens=* eol=;" %%i in (config.cfg) do 1>nul set "%%i" |
root221,
Да хоть сто одна, все переменные определятся. Если есть комментарии, то прими поправку от Iska. |
У меня есть такой интерестный скрипт, который обсуждали в другой теме, но напишу его сдесь, с надежной, что вы мне тут же и поможете, сделать для него конфиг.
И вот он: Код:
(for /l %%a in (1,1,254) do Echo CreateObject^("WScript.Shell"^).Run "ping -w 100 -n 1 10.0.0.%%a",0 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 в файле скрипта, создавая для него ещё одну переменную, внутри скрипта. Вот так я бы хотел чтобы выглядел весь конфиг файл: Код:
# Файл в котором хрянятся логи кэша Код:
# Файл в котором хрянятся логи из таблицы кэша Цитата:
твой скрипт работал, просто ошибки были, когда комментарии оставлял в конфиге, поэтому решил спросить, "а если не одна" =) |
root221,
Подставь те переменные, что указаны в конфиге в батник, например: Код:
@echo off Цитата:
|
Цитата:
Config.cfg Заметтьте, я хотел чтобы число писалось не отдельно, как у вас %IPNum%, а слитно вместе с IP чтобы не так было: Код:
Код:
IPAddr=10.0.13.254 |
Цитата:
Код:
for %%i in (ya.ru mail.ru google.ru) do start ping -n 11 %%i |
Цитата:
Код:
for /l %%a in (1,1,254) do ping -w 100 -n 1 10.0.0.%%a |
так что насчёт конфига ? его вобще можно сделать ?
хотябы Код:
s=10.0.0.1 |
|
Цитата:
Код:
@echo off |
|
Время: 06:49. |
Время: 06:49.
© OSzone.net 2001-