Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
 Аватар для valik3210
7 / 7 / 0
Регистрация: 15.05.2009
Сообщений: 36

Проверка существования определённого сайта

24.12.2011, 15:06. Показов 4046. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый. Можно ли написать батник который проверял бы существует ли определенный сайт или нет. Если да, то как???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.12.2011, 15:06
Ответы с готовыми решениями:

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

Проверка существования каталога
Привет всем. Есть каталог o:\2012-11 Это год и месяц соответственно, в конце месяца (в двадцатых числах) этот каталог удаляется и...

Проверка существования файла и его запуск
Создать КФ (Primer 11.bat) , который выполняет следующие функции: Очищает экран; Выводит на экран оглавление вашего рабочего...

20
 Аватар для Isn
225 / 46 / 4
Регистрация: 27.11.2011
Сообщений: 99
24.12.2011, 15:19
можно попробывать так:
Bash
1
ping ya.ru
1
 Аватар для valik3210
7 / 7 / 0
Регистрация: 15.05.2009
Сообщений: 36
24.12.2011, 15:45  [ТС]
Так как написать условие что если существует сайт, то делать то-то то-то?
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
24.12.2011, 15:50
ping проверяет доступность сайта, и тем более сайт может игнорировать пинги так что лучше использовать nslookup.

тестовый пример
Code
1
2
3
4
5
6
7
8
9
10
11
@echo off
set testsite=yahhjhgghjgf.ru
set kl=0
set disk=0
for /f "skip=2 delims= " %%i in ('nslookup %testsite% 2^>nul') do (
if /i %%i==Address: set kl=1
if /i %%i==Addresses: set kl=1
if /i %%i==DNS set disk=1
)
if %disk%==0 (if kl==0 (echo сайт %testsite% не существует) else (echo сайт %testsite% существует)) else (echo запрос не выполнен возможно нет связи с интернет)
pause
с вашими действиями
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
set testsite=yahhjhgghjgf.ru
set kl=0
set disk=0
for /f "skip=2 delims= " %%i in ('nslookup %testsite% 2^>nul') do (
if /i %%i==Address: set kl=1
if /i %%i==Addresses: set kl=1
if /i %%i==DNS set disk=1
)
if %disk%==0 (if kl==0 (goto :m1) else (goto :m2)) else (goto :m3)
:m1
::сюда попадаем
::если сайта нет
 
:m2
::сюда попадаем
::если сайт есть
 
:m3
::сюда попадаем
::если сервер днс не ответил
1
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
24.12.2011, 16:11
atributz, а чем пинг не подходит?

Если хостинг, можно юзать wget с поиском фразы, типа сайта нет.
0
 Аватар для valik3210
7 / 7 / 0
Регистрация: 15.05.2009
Сообщений: 36
24.12.2011, 16:23  [ТС]
Цитата Сообщение от atributz Посмотреть сообщение
ping проверяет доступность сайта, и тем более сайт может игнорировать пинги так что лучше использовать nslookup.

тестовый пример
Code
1
2
3
4
5
6
7
8
9
10
11
@echo off
set testsite=yahhjhgghjgf.ru
set kl=0
set disk=0
for /f "skip=2 delims= " %%i in ('nslookup %testsite% 2^>nul') do (
if /i %%i==Address: set kl=1
if /i %%i==Addresses: set kl=1
if /i %%i==DNS set disk=1
)
if %disk%==0 (if kl==0 (echo сайт %testsite% не существует) else (echo сайт %testsite% существует)) else (echo запрос не выполнен возможно нет связи с интернет)
pause
с вашими действиями
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
set testsite=yahhjhgghjgf.ru
set kl=0
set disk=0
for /f "skip=2 delims= " %%i in ('nslookup %testsite% 2^>nul') do (
if /i %%i==Address: set kl=1
if /i %%i==Addresses: set kl=1
if /i %%i==DNS set disk=1
)
if %disk%==0 (if kl==0 (goto :m1) else (goto :m2)) else (goto :m3)
:m1
::сюда попадаем
::если сайта нет
 
:m2
::сюда попадаем
::если сайт есть
 
:m3
::сюда попадаем
::если сервер днс не ответил
Всё время показывает что сайт есть, даже если записан несуществующий сайт.
0
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
24.12.2011, 16:59
даже если записан несуществующий сайт.
пример в студию
0
 Аватар для valik3210
7 / 7 / 0
Регистрация: 15.05.2009
Сообщений: 36
24.12.2011, 17:09  [ТС]
Цитата Сообщение от Ris Посмотреть сообщение
пример в студию
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
set testsite=yahhjhgghjgf.ru
set kl=0
set disk=0
for /f "skip=2 delims= " %%i in ('nslookup %testsite% 2^>nul') do (
if /i %%i==Address: set kl=1
if /i %%i==Addresses: set kl=1
if /i %%i==DNS set disk=1
)
if %disk%==0 (if kl==0 (goto :m1) else (goto :m2)) else (goto :m3)
:m1
echo site OFF
 
 
:m2
echo site ON
 
 
:m3
echo dns OFF
 
pause
Результат :
Code
1
2
site ON
dns OFF
0
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
24.12.2011, 18:26
Попробуй это
Bash
1
2
3
4
5
6
7
@echo off
set testsite=yandex.ru
for /f "skip=8 tokens=*" %%i in ('ping -n 1 -w 1 -l 1 %testsite%') do (echo Site ON)&goto ex
echo Site OFF
:ex
pause
goto :EOF
Добавлено через 11 минут

Не по теме:

Спасибо atributz, за skip=n, взамен используемого раньше мной | more +n

0
 Аватар для valik3210
7 / 7 / 0
Регистрация: 15.05.2009
Сообщений: 36
24.12.2011, 19:13  [ТС]
Цитата Сообщение от Ris Посмотреть сообщение
Попробуй это
Bash
1
2
3
4
5
6
7
@echo off
set testsite=yandex.ru
for /f "skip=8 tokens=*" %%i in ('ping -n 1 -w 1 -l 1 %testsite%') do (echo Site ON)&goto ex
echo Site OFF
:ex
pause
goto :EOF
Добавлено через 11 минут

Не по теме:

Спасибо atributz, за skip=n, взамен используемого раньше мной | more +n

У меня не работает, а у вас?
0
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
24.12.2011, 19:58
У меня всё работает, вы скажите: на каких именно сайтах проверяете?
Я проверял на yandex.ru и ya2452375237445ndex.ru
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
25.12.2011, 00:07
nslookup к сожалению может на разных системах по разному выдавать информацию поэтому скиньте лог этих команд
Code
1
2
3
4
del log.txt
nslookup ya.ru 1>>log.txt
nslookup cyberforum.ru 1>>log.txt
nslookup 1.ru 1>>log.txt
0
25.12.2011, 00:28

Не по теме:

Bash
1
2
3
4
del log.txt
nslookup ya.ru 1>>log.txt
nslookup cyberforum.ru 1>>log.txt
nslookup 1.ru 1>>log.txt
Можно просто так:
Bash
1
2
3
nslookup ya.ru >log.txt
nslookup cyberforum.ru >>log.txt
nslookup 1.ru >>log.txt

0
 Аватар для valik3210
7 / 7 / 0
Регистрация: 15.05.2009
Сообщений: 36
25.12.2011, 01:22  [ТС]
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Server:  ctelecom.gomel.by
Address:  82.209.213.51
 
Name:    ya.ru
Addresses:  87.250.251.3, 93.158.134.3, 93.158.134.203, 213.180.193.3
      213.180.204.3, 77.88.21.3, 87.250.250.3, 87.250.250.203
 
Server:  ctelecom.gomel.by
Address:  82.209.213.51
 
Name:    cyberforum.ru
Address:  188.120.42.86
 
Server:  ctelecom.gomel.by
Address:  82.209.213.51
0
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
25.12.2011, 03:45
valik3210, все правильно если сайт не зареган должно показывать что его нет
проверьте основной пример с 1.ru

Добавлено через 2 минуты
хотя возможно у вас строчек больше
проверьте если skip=3 так работает?
0
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
25.12.2011, 11:11
Блин, чего у вас ни хрена не работает.
Bash
1
2
3
4
5
6
7
8
9
10
@echo off
set testsite=yandex.ru
:st
echo %testsite%
for /f "skip=8 tokens=*" %%i in ('ping -n 1 -w 1 -l 1 %testsite%') do (echo Site ON)&goto ex
echo Site OFF
:ex
echo.
set /p testsite="testsite: "
goto :st
Введите несколько сайтов(работающих и неработающих) и скопируйте, что пишет.
1
835 / 349 / 12
Регистрация: 04.10.2009
Сообщений: 589
25.12.2011, 13:17
ping не дает 100% определяемости существования сайта.

например ping microsoft.com не проходит а сайт есть

Добавлено через 1 минуту
Мне уже думается надо использовать качалку файлов wget чтоб точно все было.
0
 Аватар для valik3210
7 / 7 / 0
Регистрация: 15.05.2009
Сообщений: 36
25.12.2011, 21:00  [ТС]
Цитата Сообщение от Ris Посмотреть сообщение
Блин, чего у вас ни хрена не работает.
Bash
1
2
3
4
5
6
7
8
9
10
@echo off
set testsite=yandex.ru
:st
echo %testsite%
for /f "skip=8 tokens=*" %%i in ('ping -n 1 -w 1 -l 1 %testsite%') do (echo Site ON)&goto ex
echo Site OFF
:ex
echo.
set /p testsite="testsite: "
goto :st
Введите несколько сайтов(работающих и неработающих) и скопируйте, что пишет.
На экране пишутся только сайты которые ввожу, независимо рабочие они или нет.
0
 Аватар для valik3210
7 / 7 / 0
Регистрация: 15.05.2009
Сообщений: 36
26.12.2011, 23:08  [ТС]
При написании в батнике ping ya.ru на экране быстро-быстро мелькает только ping ya.ru и нечего не происходит

Добавлено через 36 минут
Все работает всем огромное спасибо
0
 Аватар для Ris
795 / 177 / 9
Регистрация: 11.01.2011
Сообщений: 543
27.12.2011, 00:56
Цитата Сообщение от valik3210 Посмотреть сообщение
Все работает всем огромное спасибо
А почему и что не работало?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.12.2011, 00:56
Помогаю со студенческими работами здесь

Проверка существования строки
Суть в следующем: Нужно написать .bat файл, который проверяет hosts на наличие определенного строки, например, 132.45.60.1 mysite.ru ...

Проверка существования директории
Здравствуйте. Проверка директории или папки. -------------------------------- Путь - C:\Documents and Settings\Admin\Application...

Проверка существования директории
добрый вечер. есть папки d:\data1\1\cfg\ d:\data1\2\cfg и т.д. имена могут быть разными (назовем их X) есть папка d:\data2\ , в...

Проверка существования и создание файлов
Написать программу в бат файл, в котором в командной строке пишем имя файла и номер n. должен создать файл с именем f и в нём должны быть...

Проверка существования папки в цикле
Собственно, как сделать? @echo off Setlocal EnableDelayedExpansion set folder="" for /f "usebackq delims=" %%i in...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru