Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP: сети

Войти
Регистрация
Восстановить пароль
 
 
Advaita
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 6
#1

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

11.04.2018, 18:20. Просмотров 349. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проверка .onion ссылки на работу (PHP Сети):

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

Проверка ссылки на битость - C#
Пытаюсь написать метод, который собирает все внутренний ссылки сайта в список. Помогите, пожалуйста, с реализацией проверки найденных...

Проверка посещаемости ссылки - PHP
Допустим у меня есть партнерская программа по покупке трафика. Они дают скрипи &lt;script language=&quot;JavaScript&quot;...

Проверка ссылки на значение - C++
Скажите, возможно ли проверить ссылку на значение? int main(){ int* abc; //cout &lt;&lt; abc &lt;&lt; endl; //тут ошибка, как то бы...

Проверка ссылки в input - JavaScript
нужно резрешить что бы в инпут можно было вставить только ссылку из контакта http://vk.com/id или vk.com/id в противном случае...

Проверка ссылки на валидность - C++
Привет, гуглил и на форуме искал, не могу найти решения проверки ссылки на валидность. Т.е в тело программы изначально записаны например 5...

18
Рыжий Лис
Просто Лис
889 / 427 / 127
Регистрация: 17.05.2012
Сообщений: 1,727
Записей в блоге: 4
14.04.2018, 08:50 #2
Так надо, чтобы запрос шёл через проксю (в данном случае через тор 127.0.0.1:9050). А из-за особенностей построения цепочек до скрытых сервисов при первом соединении придётся набраться терпения.
0
Advaita
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 6
14.04.2018, 10:01  [ТС] #3
Я не про это спрашивал!, мне нужно чтобы скрипт чекал ссылку в торе, на tor хостинге! и показывал online если сайт .onion работает!
0
pyramida
86 / 86 / 7
Регистрация: 14.07.2012
Сообщений: 525
16.04.2018, 02:50 #4
В 17 строке поставьте чтонить проверять. То, что сейчас есть ничего не делает и получаете офлайн
0
Advaita
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 6
16.04.2018, 14:34  [ТС] #5
И как это сделать? я в php не шарю
0
Рыжий Лис
Просто Лис
889 / 427 / 127
Регистрация: 17.05.2012
Сообщений: 1,727
Записей в блоге: 4
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
Сообщений: 6
18.04.2018, 02:56  [ТС] #7
Вообще не работает, со всеми ссылками показывает online
0
Рыжий Лис
Просто Лис
889 / 427 / 127
Регистрация: 17.05.2012
Сообщений: 1,727
Записей в блоге: 4
18.04.2018, 04:44 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Работает, значит все хосты онлайн. Попробуйте ввести хост, который не существует.
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
86 / 86 / 7
Регистрация: 14.07.2012
Сообщений: 525
18.04.2018, 10:10 #9
Будет проще запросить существование сайта. Получить код 200 и сделать выводы
0
Рыжий Лис
Просто Лис
889 / 427 / 127
Регистрация: 17.05.2012
Сообщений: 1,727
Записей в блоге: 4
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
Сообщений: 6
18.04.2018, 14:15  [ТС] #11
Рыжий помоги, ты понаписал и я ничего не понял! что куда, можно готовый код?
0
pyramida
86 / 86 / 7
Регистрация: 14.07.2012
Сообщений: 525
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
Рыжий Лис
Просто Лис
889 / 427 / 127
Регистрация: 17.05.2012
Сообщений: 1,727
Записей в блоге: 4
19.04.2018, 06:38 #13
pyramida, домена .onion не существует. Ой.

Добавлено через 53 секунды
Запусти у себя клиент тора и выполни код из поста Проверка .onion ссылки на работу
0
pyramida
86 / 86 / 7
Регистрация: 14.07.2012
Сообщений: 525
19.04.2018, 06:38 #14
Рыжий Лис, я почитал про них. Если в торе они както проверяется, то работать будет.
0
Рыжий Лис
Просто Лис
889 / 427 / 127
Регистрация: 17.05.2012
Сообщений: 1,727
Записей в блоге: 4
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
19.04.2018, 06:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2018, 06:40
Привет! Вот еще темы с ответами:

Django onion - Python
Здравствуйте возможно глупый вопрос но задать его больше некуда : в общем смогу ли я создать сайт на django apache2 на каком нибудь vps (...

Preg_match, проверка ссылки с доменом - PHP
Здравствуйте! Как сделать проверку ссылки, что бы начиналась с &quot;https://vk.com/&quot;? Сейчас как то так... ...

Проверка ссылки в браузере на корректность - PHP
Допустим есть ссылка вида: test.php?id=14 Как проверить корректность, то есть если нет такого id или допустим пользователь вписал по...

Проверка ссылки на файл - Http - Delphi
Ситуация такая. Есть хост загрузки типа народа. Как сделать проверку ссылки - а именно целностность файла. Ситуация такая - мне нужно...


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

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

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