Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2019, 20:08   #1
jenya82
Пользователь
 
Регистрация: 21.10.2019
Сообщений: 14
По умолчанию Массовая проверка доступности сайтов на существование

Всем привет!

Нужно срочно прогнать базу доменов 2000 штук на существование. Каждый кликать - долго.

Должны же сервисы существовать или проги, которые запрос сделают и получат ответ 404?

Пока нашел только мониторинг одного сайта на ping, но это все равно что каждый кликать...

Умные головы, подскажите сервис, прогу на винду или скрипт самописный (сервер есть) что бы это сделать?

Добавлено через 1 час 19 минут
Вот что нашел

[SPOILER]
!/bin/bash
02
# задаём путь к временному файлу, в который будем писать результат выполнения проверки
03
FILE="/tmp/db_hosts_con_test.log"
04

05
rm -rf $FILE
06
touch $FILE
07

08
# указываем файл со списком хостов и портов, запускаем цикл в который сразу "скармливаем" три переменных для проверки
09
cat /home/setevoy/scripts/db_hosts.txt | while read NAME HOST PORT
10
do
11

12
# для красоты вывода результата - сначала вписываем имя проверяемого хоста
13
printf "%stt" $NAME >> $FILE &&
14

15
# записываем результат проверки хост:порт
16
printf "%st%sn" `nmap -Pn -p $PORT $HOST
17

18
# выделяем только 6 строку результата проверки и только 1 и 2 поля
19
| head -n 6 | tail -n 1 | cut -d' ' -f 1,2
20

21
# вырезаем лишнее - слово "tcp" и меняем "filtered" на "closed", дописываем в файл результат
22
| sed -e '{s/.tcp//;}' -e 's/filtered/closed/g'` >> $FILE
23

24
done
25

26
# выводим на консоль сам результат
27
cat $FILE

[/SPOILER]

и

[SPOILER]
01
# ./q.sh | cut -d'.' -f 4
02
com 1540 open
03
com 1665 closed
04
com 22 closed
05
com 1710 closed
06
com 1702 closed
07
com 1702 closed
08
com 1701 closed
09
com 1702 closed
10
com 1765 open
11
com 22 open
12
com 1845 open
13
com 1576 closed
14
com 389 open
15
com 22 open
16
com 1776 open
17
com 389 open
18
com 1845 closed
19
com 1676 open
20
com 22 closed


[/SPOILER]

Натолкните на мысли что делать?

есть хостинг на Джино. Есть домен.

Есть ноутпад ++

Как это все должно работать то)???
jenya82 вне форума Ответить с цитированием
Старый 21.10.2019, 23:29   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Толкаю на мысль - заказать за деньги в разделе фриланс. Либо самому долго и упорно изучать данную тему
ADSoft вне форума Ответить с цитированием
Старый 22.10.2019, 00:04   #3
Spoilt
Пользователь
 
Регистрация: 31.01.2019
Сообщений: 11
По умолчанию

Не совсем понятно что конкретно вам нужно, если просто проверить доступен сайт или нет то можно попробовать это:

Код:
$url_array = file ('domen.txt');

function isSiteAvailible($url) {

  if(!filter_var($url, FILTER_VALIDATE_URL)){
    return false;
  }

  $curlInit = curl_init($url);

  curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
  curl_setopt($curlInit,CURLOPT_HEADER,true);
  curl_setopt($curlInit,CURLOPT_NOBODY,true);
  curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);

  $response = curl_exec($curlInit);

  curl_close($curlInit);

  return $response ? true : false;
}

foreach($url_array as $url){

  $url = preg_replace('/[^a-z\/\:\.]/i','',$url);

  if(isSiteAvailible($url)){
    echo $url, ' Сайт доступен. <br>';
  }else{
    echo $url, ' Сайт недоступен. <br>';
  }

}
Вложения
Тип файла: txt domen.txt (72 байт, 44 просмотров)
Spoilt вне форума Ответить с цитированием
Старый 26.10.2019, 10:25   #4
jenya82
Пользователь
 
Регистрация: 21.10.2019
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Spoilt Посмотреть сообщение
Не совсем понятно что конкретно вам нужно, если просто проверить доступен сайт или нет то можно попробовать это:

Код:
$url_array = file ('domen.txt');

function isSiteAvailible($url) {

  if(!filter_var($url, FILTER_VALIDATE_URL)){
    return false;
  }

  $curlInit = curl_init($url);

  curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);
  curl_setopt($curlInit,CURLOPT_HEADER,true);
  curl_setopt($curlInit,CURLOPT_NOBODY,true);
  curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);

  $response = curl_exec($curlInit);

  curl_close($curlInit);

  return $response ? true : false;
}

foreach($url_array as $url){

  $url = preg_replace('/[^a-z\/\:\.]/i','',$url);

  if(isSiteAvailible($url)){
    echo $url, ' Сайт доступен. <br>';
  }else{
    echo $url, ' Сайт недоступен. <br>';
  }

}
Спасибо!
Но у меня не сработало.

Я правильно понимаю $url_array = file ('domen.txt'); тут нужно указать ссылку до файла с доменами на проверку?
А лог куда выводится будет, что получить список сайтов, которые существуют?

Последний раз редактировалось jenya82; 26.10.2019 в 10:41.
jenya82 вне форума Ответить с цитированием
Старый 26.10.2019, 13:15   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Кто сказал что там лог? Видно же что вывод через echo
ADSoft вне форума Ответить с цитированием
Старый 26.10.2019, 13:34   #6
jenya82
Пользователь
 
Регистрация: 21.10.2019
Сообщений: 14
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Кто сказал что там лог? Видно же что вывод через echo
У меня не работает. Попробуйте кто нибудь проверку
jenya82 вне форума Ответить с цитированием
Старый 27.10.2019, 12:02   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

А кашку вам не пожевать???
И так готовое решение дали, так нет ещё и проверяй за вас, а потом и объясни и на блюдечке с голубой каёмочкой подай...

Проверяйте сами. Учитесь просто адекватно словами формулировать проблемы, что не работает, как не работает, может есть текст ошибки итд итп
ADSoft вне форума Ответить с цитированием
Старый 27.10.2019, 12:11   #8
jenya82
Пользователь
 
Регистрация: 21.10.2019
Сообщений: 14
По умолчанию

ЗАРАБОТАЛО!!! ЕЩЕ РАЗ СПАСИБО ЗА СКРИПТ!
jenya82 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка доступности URL (masm) Mr.gretty Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 14.11.2016 12:25
Мультипотоковая проверка доступности порта igh0st Работа с сетью в Delphi 3 22.10.2013 13:16
Проверка доступности файла Freezer Общие вопросы Delphi 2 25.03.2011 10:32
Проверка доступности сервера xmaratx Работа с сетью в Delphi 2 21.04.2009 16:14
Проверка доступности файла Marsik Помощь студентам 2 05.04.2008 09:53