Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Advaita
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 10
1

Проверка .onion ссылки на работу

11.04.2018, 18:20. Просмотров 984. Ответов 18

Есть код, но он только с клирнет ссылками работает, а как сделать чтобы он чекал .onion ссылку и показывал online
Код был загружен на tor хостинг и показал offline. хотя сайт работает!
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// проверяет ссылку на работу
function getTitle($url) {
    if(!$url) return ;
    $title="";
    @$page=file_get_contents($url); 
    if ($page) {
      if (preg_match("~<title>(.*?)</title>~iu", $page, $out)) {
        $title = $out[1];   
      }
    }
    return $title;
  }
  
  $page_title = getTitle('http://zlal32teyptf4tvi.onion/');
 
if($page_title){ 
    echo "online";  
} else {  
    echo "offline";        
}
?>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2018, 18:20
Ответы с готовыми решениями:

Проверка сайта на внешние ссылки
Существует ли действенный способ проверки сайта в онлайн режиме на наличие...

Django onion
Здравствуйте возможно глупый вопрос но задать его больше некуда : в общем...

Проверка ссылки в input
нужно резрешить что бы в инпут можно было вставить только ссылку из контакта...

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

Проверка ссылки на валидность
Привет, гуглил и на форуме искал, не могу найти решения проверки ссылки на...

18
Рыжий Лис
Просто Лис
1190 / 513 / 344
Регистрация: 17.05.2012
Сообщений: 2,067
Записей в блоге: 8
14.04.2018, 08:50 2
Так надо, чтобы запрос шёл через проксю (в данном случае через тор 127.0.0.1:9050). А из-за особенностей построения цепочек до скрытых сервисов при первом соединении придётся набраться терпения.
0
Advaita
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 10
14.04.2018, 10:01  [ТС] 3
Я не про это спрашивал!, мне нужно чтобы скрипт чекал ссылку в торе, на tor хостинге! и показывал online если сайт .onion работает!
0
pyramida
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
16.04.2018, 02:50 4
В 17 строке поставьте чтонить проверять. То, что сейчас есть ничего не делает и получаете офлайн
0
Advaita
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 10
16.04.2018, 14:34  [ТС] 5
И как это сделать? я в php не шарю
0
Рыжий Лис
Просто Лис
1190 / 513 / 344
Регистрация: 17.05.2012
Сообщений: 2,067
Записей в блоге: 8
16.04.2018, 16:19 6
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function is_alive($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:9050');
    //curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
    curl_setopt($ch, CURLOPT_PROXYTYPE, 7);
    curl_setopt($ch, CURLOPT_HEADER, true);
    $out = curl_exec($ch);
    $curl_error = curl_error($ch);
    curl_close($ch);
    return $out && !$curl_error;
}
 
if(is_alive('http://ronxgr5zb4dkwdpt.onion/')) {
    echo "online";
} else {
    echo "offline";
}
0
Advaita
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 10
18.04.2018, 02:56  [ТС] 7
Вообще не работает, со всеми ссылками показывает online
0
Рыжий Лис
Просто Лис
1190 / 513 / 344
Регистрация: 17.05.2012
Сообщений: 2,067
Записей в блоге: 8
18.04.2018, 04:44 8
Лучший ответ Сообщение было отмечено Advaita как решение

Решение

Работает, значит все хосты онлайн. Попробуйте ввести хост, который не существует.
PHP
1
2
3
echo is_alive('http://ronxgr5zb4dkwdpt.onion/')? "online" : "offline";
echo is_alive('http://zlal32teyptf4tvi.onion/')? "online" : "offline";
echo is_alive('http://zlal32teyptffake.onion/')? "online" : "offline";
PHP
1
2
3
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
Чтобы в вывод ничего лишнего не выводилось и соединение по таймауту разрывалось.
1
pyramida
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
18.04.2018, 10:10 9
Будет проще запросить существование сайта. Получить код 200 и сделать выводы
0
Рыжий Лис
Просто Лис
1190 / 513 / 344
Регистрация: 17.05.2012
Сообщений: 2,067
Записей в блоге: 8
18.04.2018, 10:14 10
В переменной $out уже лежат заготовки, можно их распарсить и вытащить http код.

Добавлено через 1 минуту
Код
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Wed, 18 Apr 2018 07:13:40 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://ronxgr5zb4dkwdpt.onion/

HTTP/1.1 200 OK
Server: nginx/1.10.3 (Ubuntu)
Date: Wed, 18 Apr 2018 07:13:45 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 1277
Connection: keep-alive
Set-Cookie: session=eyJfcGVybWFuZW50Ijp0cnVlLCJ1dWlkIjp7IiBiIjoiWm1Gak5ERTVaVEl0WWpOaVlpMDBaR0l3TFdJd01ETXROamszTVdRd05UWm1OR1ZpIn19.DbiBqQ.4AXQMuQHnNyNwQrioArBK8ZD7iU; Expires=Fri, 10-Apr-2048 07:13:45 GMT; HttpOnly; Path=/
0
Advaita
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 10
18.04.2018, 14:15  [ТС] 11
Рыжий помоги, ты понаписал и я ничего не понял! что куда, можно готовый код?
0
pyramida
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
19.04.2018, 06:35 12
Код проверяет, если DNS запись существует, то говорит ок.
PHP
1
2
3
4
5
6
7
8
9
<?php
 $domain = 'google.com';
 if ( gethostbyname($domain) != $domain ) {
  echo "DNS Record found";
 }
 else {
  echo "NO DNS Record found";
 }
?>
0
Рыжий Лис
Просто Лис
1190 / 513 / 344
Регистрация: 17.05.2012
Сообщений: 2,067
Записей в блоге: 8
19.04.2018, 06:38 13
pyramida, домена .onion не существует. Ой.

Добавлено через 53 секунды
Запусти у себя клиент тора и выполни код из поста Проверка .onion ссылки на работу
0
pyramida
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
19.04.2018, 06:38 14
Рыжий Лис, я почитал про них. Если в торе они както проверяется, то работать будет.
0
Рыжий Лис
Просто Лис
1190 / 513 / 344
Регистрация: 17.05.2012
Сообщений: 2,067
Записей в блоге: 8
19.04.2018, 06:40 15
Проблема в том, что dns запросы тоже должны заворачиваться в прокси.

PHP
1
2
//curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); - dns из системы
curl_setopt($ch, CURLOPT_PROXYTYPE, 7);  //использовать прокси для dns
0
pyramida
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
19.04.2018, 06:44 16
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Запусти у себя клиент тора
не хочется на проще будет использовать файл гет контент и ловить ошибку, вместо курла? Я с тором не работал.
0
Рыжий Лис
Просто Лис
1190 / 513 / 344
Регистрация: 17.05.2012
Сообщений: 2,067
Записей в блоге: 8
19.04.2018, 06:45 17
Цитата Сообщение от pyramida Посмотреть сообщение
файл гет контент
Удачи с проксёй типа SOCKS5. Если получится - расскажи.
0
pyramida
91 / 91 / 13
Регистрация: 14.07.2012
Сообщений: 539
19.04.2018, 12:28 18
Лучший ответ Сообщение было отмечено Advaita как решение

Решение

Не по теме:


Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Если получится - расскажи.
тебе точно это надо? :)



Код у тебя работает, только если исправить
PHP
1
if(is_alive('ronxgr5zb4dkwdpt.onion')) {
без http.
1
Advaita
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 10
22.04.2018, 18:03  [ТС] 19
Вот теперь все работает!! спс, правда жаль что не на чистом php,но теперь работает!
0
22.04.2018, 18:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2018, 18:03

Проверка посещаемости ссылки
Допустим у меня есть партнерская программа по покупке трафика. Они дают скрипи...

Проверка ссылки на значение
Скажите, возможно ли проверить ссылку на значение? int main(){ int* abc;...

Проверка ссылки соцсети на валидность
Можно как-то проверить существует ли данная ссылка на соцсеть перед записью в...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru