ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Q] Автоматическое получение Google Map API ключа (php)
  #1  
Старый 17.03.2009, 14:24
draliokero
Познающий
Регистрация: 14.03.2009
Сообщений: 86
Провел на форуме:
385811

Репутация: 12
Question [Q] Автоматическое получение Google Map API ключа (php)

Здравствуйте, собственно сабж интересует. Как с помощью file_get_contents получить для текущего хоста API key со страницы http://www.google.com/maps/api_signup?url=http%3A%2F%2Fexample.ru

Из-за редиректов через заголовки трабла. Что касается авторизации в Google Accounts нарыл http://code.google.com/intl/ru/apis/accounts/docs/AuthForInstalledApps.html

Буду очень благодарен, если найдется человек, который поможет с кодом
 
Ответить с цитированием

  #2  
Старый 18.03.2009, 17:42
Shadow_p1raT
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме:
2140897

Репутация: 267
Отправить сообщение для Shadow_p1raT с помощью ICQ
По умолчанию

Это тебе в раздел О работе.
Но так как мне делать было нечего,решил написать...
Скрипт требует модуль php_openssl!
PHP код:
<?php
#########################################
#
#            Google Maps Api by Shadow_p1raT
#                ICQ#: 9930875
#
#########################################
# [setting] #
$email 'blablabal@gmail.com'// Аккунт на гмаил.ком
$pass  'antichat'// Пароль от акка
$proxy '127.0.0.1:3130'// Прокси если надо
$url   'http://forum.antichat.ru/'// Урл сайта 

#[/setting] #
echo '<title>Google Maps Api by Shadow_p1raT</title>';
set_time_limit(0);
class 
gMapKey {
    
    private 
$email;
    private 
$pass;
    private 
$proxy;
    private 
$url;
    
    
    private function 
sock_do($action,$method,$header false,$params false,$cookie false,$referer false
    { 
       
$out    = array('http' => array()); 
       
$method strtoupper($method); 
       if(
$method == 'GET') { 
          
$action .= !empty($params) ? '?'.$params ''
          
$out['http']['method'] = 'GET'
       
       } elseif(
$method == 'POST') { 
          
$out['http']['method']  = 'POST'
          
$out['http']['header']  = "Content-type: application/x-www-form-urlencoded\r\n"
                                    
"Content-length: ".strlen($params)."\r\n"
          
$out['http']['content'] = $params;                         
       } else { 
          die(
'Йа криветко'); 
       }  
       if(
$this->proxy) { 
          
$out['http']['proxy'] = 'tcp://'.$this->proxy
       } 
       if(
$cookie) { 
          
$out['http']['header'] .= 'Cookie: '.$cookie."\r\n"
       } 
       if(
$referer) { 
          
$out['http']['header'] .= 'Referer: '.$referer."\r\n"
       } 
       
$out['http']['header'] .= "Connection: close\r\n"
       
$out['http']['header'] .= "User-Agent: Opera/9.62 (Windows NT 6.0; U; ru) Presto/2.1.1\r\n"
    
       
$content stream_context_create($out); 
       
$result = @file_get_contents($action,false,$content); 
       
$res = array(); 
       
$res = array($result); 
       if(
$header) { 
          
$res[] = implode("\r\n",$http_response_header); 
       } 
       return 
$res//Возвращаем ответ + заголовки                     
    
}
    private function 
preg_Cookie($cookie)
    {
       
preg_match_all('#Set-cookie: (.*;)#UiS',$cookie,$headers);
       return 
implode(' ',$headers['1']);
    }
    private function 
preg_Location($text)
    {
       
preg_match('#Location: (.*)#',$text,$reg);
       return 
trim($reg['1']);
    }
    private function 
getnormal ($str)
    {
       return 
str_replace ("&amp;""&"$str);
    }
    public function 
setOption($email,$pass,$url,$proxy '')
    {
       
$this->email urlencode($email);
       
$this->pass  urlencode($pass);
       
$this->url   urlencode($url);
       
$this->proxy $proxy;
    }          
    public function 
Sign() 
    {
       
$res $this->sock_do('https://www.google.com/accounts/LoginAuth','POST',1,'Email='.$this->email.'&Passwd='.$this->pass.'&PersistentCookie=yes&rmShown=1&signIn=%D0%92%D0%BE%D0%B9%D1%82%D0%B8&asts=');
       
$cookie $this->preg_Cookie($res[1]);
       
$location $this->preg_Location($res[1]) or die('[-] Неправильный логин или пароль!');
       unset(
$res);
       
$res $this->sock_do($location,'GET',1,'',$cookie);
       
preg_match('~url=\'(.*)'~',$res[0],$reg) or die('[-] Произошла ошибка при логине аккунта!');
       
$location $this->getnormal($reg[1]);
       unset(
$res);
       
$res $this->sock_do($location,'GET',1,'',$cookie);
       
$cookie $this->preg_Cookie($res[1]);
       unset(
$res);
       
$res $this->sock_do('http://maps.google.com/maps/api_signup?url='.$this->url,'GET',1,'',$cookie);
       if(
strstr($res[0],'Your key is'))
       {
          
preg_match('~page_title">(.*)\&copy;2008 Google~sUi',$res[0],$reg);
          echo 
'<html>
               <head>
               <link href="http://code.google.com/css/codesite.pack.01312008.css" type="text/css" rel="stylesheet"></link>
               </head>'
;
          echo 
$reg[1];
       }
       else
       {
          echo 
'[-] Не удалось получить Google Maps API Key!';
       }          
    }
    unset(
$res);
}       
$gmk = new gMapKey();
$gmk->setOption($email,$pass,$url,$proxy);
$gmk->Sign();       
?>
Кстати,а почему именно с помощью file_get_contents(),ведь он работает медленнее сокетов и cURL?

P.S Наконецто испытал свою функцию в боевых условиях,выявилось несколько изъянов....
 
Ответить с цитированием

  #3  
Старый 19.03.2009, 03:00
draliokero
Познающий
Регистрация: 14.03.2009
Сообщений: 86
Провел на форуме:
385811

Репутация: 12
По умолчанию

Shadow_p1raT, большое Вам спасибо за вашу помощь и реализацию!
Про скорость работы в курсе, для наглядности file_get_contents() хотелось увидеть.

>Это тебе в раздел О работе
Ok, на будущие учту
 
Ответить с цитированием

  #4  
Старый 19.03.2009, 05:52
Shadow_p1raT
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме:
2140897

Репутация: 267
Отправить сообщение для Shadow_p1raT с помощью ICQ
По умолчанию

Цитата:
Сообщение от draliokero  
>Это тебе в раздел О работе
Ok, на будущие учту
Не обязательно,если скрипт не большой,найдутся люди которые помогут за спасибо.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Полная обзорная статья о Google PR [ANGEL] Статьи 6 16.02.2009 18:31
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ