Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 8

Доступность IP-адреса

04.06.2013, 13:52. Показов 2618. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Когда нет ответа, он пишет просто время причем в одну строку:
Bash
1
2013-06-04 - 17:22:22 2013-06-04 - 17:22:27 2013-06-04 - 17:22:32 2013-06-04 - 17:22:37 2013-06-04 - 17:22:43 2013-06-04 - 17:22:48 2013-06-04 - 17:22:52 2013-06-04 - 17:22:57 2013-06-04 - 17:23:02 2013-06-04 - 17:23:07
Нужно сделать, когда нету ответа, он писал *время* "Нет ответа" от *ip*
Я сам не разбираюсь в bat, только немного в си шарт, помогите пожалуйста.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
@echo off
::время между пингами в секундах (1 сек минимум)
set timeout=1
 
::сколько раз пинговать (0-не ограниченно по числу раз)
set num=0
 
::адрес который пингуем (ip или название)
set ip=172.30.166.1
 
set d=%date%
set yy=%d:~8,2%
set mm=%d:~3,2%
set dd=%d:~0,2%
set data=20%yy%-%mm%-%dd%
if not exist "C:\ping\%data%" mkdir "C:\ping\%data%"
set /a timeout+=1
set t=%time%
set hour=%t:~0,2%
set hour=%hour: =0%
set minute=%t:~3,2%
set pingstart=%data%__%hour%-%minute%
set pingfile=%pingstart%__%ip%
set output="C:\ping\%data%\%pingfile%.txt"
cls
echo Host: %ip%>%output%
:pinging
call :cyrtime
<nul set /p strTemp=^%pingtime%>>%output%
1>nul chcp 866
for /f "delims=" %%i in ('ping -n 1 %ip% ^| find "TTL="') do (call :f "%%i")
if errorlevel 1 (set bg=4F & echo Ping timed out.>>%output% ) else (set bg=2F)
color %bg%
if %bg%==2F (
echo ICMP answer received at %pingtime% from %ip%
) else (
echo ICMP answer not received at %pingtime% from %ip%
)
set k=%num%
if %k% gtr 1 (set /a num-=1)
if %k% neq 1 (ping -n %timeout% -l 10 127.0.0.1 >nul & goto pinging)
exit
:cyrtime
set t=%time%
set hr=%t:~0,2%
set hr=%hr: =0%
set min=%t:~3,2%
set sec=%t:~6,2% 
set pingtime=%data% - %hr%:%min%:%sec%
exit /b
:f
if %1=="" (1>>1.txt echo. & exit /b)
1>nul chcp 1251
set "str=%~1"
set "str=%str:/=^/%"
set "str=%str:>=^>%"
set "str=%str:<=^<%"
1>>%output% echo %str%
1>nul chcp 866
exit /b
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.06.2013, 13:52
Ответы с готовыми решениями:

Доступность адреса в интернете
Привет всем. Подскажите пожалуйста программу чтобы она следила даный адрес на разрыв. напремер чтобы я поставил допустим хх.хх.хх.хх и...

проверка адреса на доступность\защиту
Пытаюсь сканировать нужный мне участок памяти и найти в нем нужную мне сигнатуру байт и вернуть адрес который относится к этой сигнатуре в...

Ошибка при проверке IP адреса на доступность
Помогите плиз. Нужно проверить ИП на доступность. Вот как посоветовали сделать, но пишет ошибку: unit Unit1; interface uses ...

5
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
04.06.2013, 14:50
Цитата Сообщение от dimsils Посмотреть сообщение
set "str=%str:/=^/%"
set "str=%str:>=^>%"
set "str=%str:<=^<%"
интересно, что делают эти строки.

Цитата Сообщение от dimsils Посмотреть сообщение
пишет просто время причем в одну строку:
Это изначально так не задумывалось.
В коде некорректно устанавливается код возврата.

Попробуйте так:

Bash
52
if %1=="" (1>>1.txt echo. & exit /b 1)
Bash
60
exit /b 0
На счет вывода информации:
Здесь можно убрать вывод информации в файл (будет отображаться на экране):
Bash
32
if errorlevel 1 (set bg=4F & echo Ping timed out.) else (set bg=2F)
А здесь можете указать свой текст, и добавим перенаправление, чтобы текст попадал в файл:

Bash
35
echo ICMP answer received at %pingtime% from %ip%>>%output%
Bash
37
echo ICMP answer not received at %pingtime% from %ip%>>%output%
0
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 8
04.06.2013, 15:26  [ТС]
Как можно с вами связаться? я подал авторизацию в вебмани.
Все ровно выводит в одну строку.

Добавлено через 6 минут
Немного подправил, теперь не выводит в одну строку, но ему теперь всеровно, есть ли конект, или нет.
Всегда пишет "ICMP answer received"

Добавлено через 9 минут
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
@echo off
::время между пингами в секундах (1 сек минимум)
set timeout=1
 
::сколько раз пинговать (0-не ограниченно по числу раз)
set num=0
 
::адрес который пингуем (ip или название)
set ip=172.30.166.
 
set d=%date%
set yy=%d:~8,2%
set mm=%d:~3,2%
set dd=%d:~0,2%
set data=20%yy%-%mm%-%dd%
if not exist "C:\ping\%data%" mkdir "C:\ping\%data%"
set /a timeout+=1
set t=%time%
set hour=%t:~0,2%
set hour=%hour: =0%
set minute=%t:~3,2%
set pingstart=%data%__%hour%-%minute%
set pingfile=%pingstart%__%ip%
set output="C:\ping\%data%\%pingfile%.txt"
cls
echo Host: %ip%>%output%
:pinging
call :cyrtime
<nul set /p strTemp=^%pingtime%>>%output%
1>nul chcp 866
for /f "delims=" %%i in ('ping -n 1 %ip% ^| find "TTL="') do (call :f "%%i")
if errorlevel 1 (set bg=4F & echo Ping timed out.) else (set bg=2F)
color %bg%
if %bg%==2F (
echo Есть ответ %pingtime% from %ip%>>%output%
) else (
echo Нет ответа %pingtime% from %ip%>>%output%
)
set k=%num%
if %k% gtr 1 (set /a num-=1)
if %k% neq 1 (ping -n %timeout% -l 10 127.0.0.1 >nul & goto pinging)
exit
:cyrtime
set t=%time%
set hr=%t:~0,2%
set hr=%hr: =0%
set min=%t:~3,2%
set sec=%t:~6,2% 
set pingtime=%data% - %hr%:%min%:%sec%
exit /b
:f
if %1=="" (1>>1.txt echo. & exit /b 1)
1>nul chcp 1251
set "str=%~1"
set "str=%str:/=^/%"
set "str=%str:>=^>%"
set "str=%str:<=^<%"
1>>%output% echo %str%
1>nul chcp 866
exit /b 0
Добавлено через 3 минуты
Когда не ответа
Bash
1
2
2013-06-04 - 19:23:45 Есть ответ 2013-06-04 - 19:23:45  from 172.30.166.
2013-06-04 - 19:23:48 Есть ответ 2013-06-04 - 19:23:48  from 172.30.166.
Когда есть ответ.
PureBasic
1
2
2013-06-04 - 19:25:51 Ответ от 172.30.166.1: число байт=32 время=1мс TTL=64
Есть ответ 2013-06-04 - 19:25:51  from 172.30.166.1
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
04.06.2013, 16:00
dimsils, по тому что код по-турецки написан. Проще с нуля. Так уж и быть откорректировал, выкинув половину кода.
По задумке автора цикл должен в любом случае выполниться. А ничего подобного. Если после фильтра возвращается пустая строка: цикл не выполнится. При этом код возврата не изменяется.
Вот мой вариант:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
@echo off
::время между пингами в секундах (1 сек минимум)
set timeout=1
 
::сколько раз пинговать (0-не ограниченно по числу раз)
set Count=0
 
::адрес который пингуем (ip или название)
set ip=172.30.166.1
 
set /a timeout+=1 
 
Call :CurDateTime
if not exist "C:\ping\%data%" mkdir "C:\ping\%data%"
 
set pingstart=%data%__%hr%-%min%
set pingfile=%pingstart%__%ip%
 
set output=C:\ping\%data%\%pingfile%.txt
 
echo Host: %ip%>"%output%"
 
:pinging
call :CurDateTime
ping -n 1 %ip% | find /i "TTL=" && (
  color 2F
  echo Есть ответ %pingtime% from %ip%>>"%output%"
) || (
  color 4F
  echo Ping timed out.
  echo Нет ответа %pingtime% from %ip%>>"%output%"
)
 
if %Count% neq 1 (
  set /a Count-=1
  ping -n %timeout% 127.1 >nul
  goto pinging
)
goto :eof
 
:CurDateTime
  set t=%time%
  set hr=%t:~0,2%
  set hr=%hr: =0%
  set min=%t:~3,2%
  set sec=%t:~6,2%
 
  set d=%date%
  set yy=%d:~8,2%
  set mm=%d:~3,2%
  set dd=%d:~0,2%
 
  set data=20%yy%-%mm%-%dd%
  set pingtime=%data% - %hr%:%min%:%sec%
exit /b
0
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 8
04.06.2013, 16:01  [ТС]
Спасибо огромное! все что мне нужно было, ещё раз спасибо.
0
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 8
06.06.2013, 07:31  [ТС]
Нужно ещё кое-что дописать, я готов оплатить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.06.2013, 07:31
Помогаю со студенческими работами здесь

Проверка IP-адреса на доступность через сайт
Здравствуйте подскажите пожалуйста код для проверки IP на доступность вот сайт(можно и другой) http://www.ip-ping.ru/ping/

Как с использованием компонента IdIPWatch, проверить доступность сетевого адреса?
Здравствуйте. Я хотела бы знать, как при помощи компонента IPWatch можно проверить наличие/доступность сетевого адреса? Google ответов не...

Доступность и не доступность флажка на форме
На форме установлен флажок. При определенных условиях необходимо, что бы он, оставаясь ВИДИМЫМ, становился НЕДОСТУПНЫМ. пытаюсь как-то...

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

Почему при присваивании адреса массива не ставится знак '&' получения адреса
int main() { int a = { 2, 3 }; int* b; b = a; //Почему при присваивании адреса массива не ставится знак '&amp;' получения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru