powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) ВКонтакте - дата регистрации юзера
5 сообщений из 5, страница 1 из 1
(PHP) ВКонтакте - дата регистрации юзера
    #38752933
Kukuxumushu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Ржавый чайник просит помощи, желательно от людей, уже ПЫТАВШИХСЯ сделать такое или СДЕЛАВШИХ.
Всем известно, что API ВК не выдает дату регистрации юзеров. Также всем известно, что существует сервис , который эту досадную оплошность исправляет. Поковырявшись в кодах сервиса, можно обнаружить, что он имеет на первый взгляд примитивную защиту от ботов - Sid в куках и хэш-функцию, которую я легко распотрошил и перевел на PHP. Сделал вот такой код
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?php
$k=substr(file_get_contents('http://api.smsanon.ru'),1036,10);
$h="";
for($i=0;$i<10;$i++)
  {
  $tmp=$k[$i];
  for($j=0;$j<10;$j++)
   {
   $tmp=$tmp[0] ^ $k[$j];
   }
  $h.=$tmp;
  }
$s=substr($http_response_header[8],4,44)."\r\n";
$context=stream_context_create(array('http'=>array('method'=>'POST',
                                                   'header'=>'Content-Type: application/x-www-form-urlencoded\r\n'.$s,               
                                                   'content'=>'paramId='.$_POST['viewer_id'].'&hash='.$h
                                                  )
                                    )
                               );
echo file_get_contents('http://api.smsanon.ru/vk.com',false,$context);
?>


но сервак упорно распознает, что я бот и выдает "-1".
Вопросы:
1. Правильно ли я вытаскиваю и отсылаю обратно куки?
2. Правильно ли я вообще формирую контекст?
3. Может быть в заголовках должно быть что-то еще?
4. А может вообще существуют более простые способы узнать дату регистрации?
Предчувствую злорадство, сразу хочу сказать:
1. Да, я ржавый чайник, не надо отсылать меня ставить PHP-сервер с дебаггером, у меня на его конфиг уйдет месяц, поэтому и прошу высказаться тех, кто уже в курсе дела.
2. Хэш-функция работает ПРАВИЛЬНО, это всё проверено.
3. Сервис нормально функционирует, если в куках ему отправлять только SID, остальные там какие-то мусорные, это тоже проверено.
4. Подключать CURL ради 5 строк кода у меня тоже желания мало, и я сильно сомневаюсь что это как-то поможет.
...
Рейтинг: 0 / 0
(PHP) ВКонтакте - дата регистрации юзера
    #38752935
Kukuxumushu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Адрес сервиса что-то вырезался http://api.smsanon.ru
...
Рейтинг: 0 / 0
(PHP) ВКонтакте - дата регистрации юзера
    #38753077
Kukuxumushu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос решён.
Как всегда, дело оказалось во вселенской тупости - вместо одинарных кавычек должны были быть двойные.
Кстати, если что, даже сам гугл не знает способа автоматического определения даты регистрации ВК, так что пользуйтесь))
...
Рейтинг: 0 / 0
(PHP) ВКонтакте - дата регистрации юзера
    #38753105
Kukuxumushu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну всё, моё творение отлажено и готово к работе))
Код: php
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.
<?php
// В POST-запросе передается только id юзера
header("Content-Type: text/html; charset=utf-8");  // Переключаем кодировку

$k=substr(file_get_contents('http://api.smsanon.ru',false,$context),1036,10);  // Парсим идентификатор
$h="";
for($i=0;$i<10;$i++)  // Вычисляем хэш
  {
  $tmp=$k[$i];
  for($j=0;$j<10;$j++) $tmp=$tmp[0] ^ $k[$j];
  $h.=$tmp;
  }
$s=substr($http_response_header[8],4,44);  // Сохраняем SID из куки
$context=stream_context_create(array('http'=>array  // Формируем запрос
         ('method'=>"POST",
          'header'=>"Content-Type: application/x-www-form-urlencoded\r\n".$s,  // Подставляем SID
          'content'=>"paramId=".$_POST['id']."&hash=".$h  // Подставляем id и хэш
         )));
$date=file_get_contents('http://api.smsanon.ru/vk.com',false,$context);  // Отправляем запрос
$pos1=strpos($date,"&nbsp");  // Парсим дату регистрации в ответе
$pos2=strrpos($date,"&nbsp");
$day=substr($date,$pos1-2,2);  // Парсим день
if($day[0]=='>') $day[0]='0';  // Добавляем ноль к однозначному дню
$mounth=substr($date,$pos1+6,$pos2-$pos1-6);  // Парсим месяц
$year=substr($date,$pos2+6,4);  // Парсим год
switch($mounth)  // Конвертируем месяц из названия в число
 {
 case "января"  :$mounth="01"; break;
 case "февраля" :$mounth="02"; break;
 case "марта"   :$mounth="03"; break;
 case "апреля"  :$mounth="04"; break;
 case "мая"     :$mounth="05"; break;
 case "июня"    :$mounth="06"; break;
 case "июля"    :$mounth="07"; break;
 case "августа" :$mounth="08"; break;
 case "сентября":$mounth="09"; break;
 case "октября" :$mounth="10"; break;
 case "ноября"  :$mounth="11"; break;
 case "декабря" :$mounth="12"; break;
 }
$date=$year."-".$mounth."-".$day." 00:00:00";  // Приводим дату к стандартному виду
echo strtotime($date); // Отправляем дату в POSIX-формате
?>
...
Рейтинг: 0 / 0
(PHP) ВКонтакте - дата регистрации юзера
    #38754095
MikkiMouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kukuxumushu,

Какой-то smsanon, нах... оно вообще кому нужно? Зачем ты сюда запостил это?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) ВКонтакте - дата регистрации юзера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]