Jump to content


Photo

Capturando Redirecionamento?


  • Faça o login para participar
9 replies to this topic

#1 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 20/07/2007, 13:29

Olá pessoal, eu gostaria de captura a url que seria redicionada.
ex:
Redirecionamento = http://www.regnow.co...amp;vendor=4276
Url Original = http://www.ghcentre.com/

eu gostaria de opegar a url orginal do redirecionamento.

Obrigado.

#2 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 20/07/2007, 14:23

Veja se esse link te ajuda:

http://br2.php.net/m...n.parse-url.php

Té mais ;)
Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#3 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 20/07/2007, 14:38

Ele retorna isso:
Array ( [scheme] => http [host] => www.regnow.com [path] => /softsell/visitor.cgi [query] => affiliate=22260&action=site&vendor=4276 )

Quando era pra retorna a url que seria redicionado...

Edição feita por: B!ö$, 20/07/2007, 14:40.


#4 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 20/07/2007, 14:41

Olha...

Sei que não é da minha conta, mas, pra que você quer fazer isso???

E porque não digitar a URL diretamente.
Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#5 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 20/07/2007, 15:45

vo lhe explicar, tenho um script, que numa das partes dele é recebe urls, e se por a caso, for recibo este tipo de url, gostaria de pegar a url para qual seria redicionado.

preciso de ajuda.

grato.

#6 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 23/07/2007, 02:24

Certo já que ninguém conseguiu me ajudar, será que me podia dizer se teria como eu exibir um conteúdo HTTPS? se sim como? a url seria esta: https://www.regnow.com/affiliatepriv/

Abraços

#7 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 23/07/2007, 03:43

Bem respondendo sua pergunta Nº 1, isso que vc quer fazer é um pouco mais complicado do que parece, pois envolve cabeçalhos HTTP, sendo assim não há como saber qual URL o script vai apontar sem acessa-lo.

Logo a solução básica é fazer com que o PHP simule ser um Browser e recuperar os cabeçalhos que são enviados pelos servidor e em geral omitidos pelos Browser (por meras comodidade) e pegar a URL do cabeçalho "Location: XXXX", que é usado para fazer esse tipo de redireção.

Usando como base um Scriptizinho HTTP achado na WEB, em seu caso ficaria assim uma funçãoziha ... mamão com açucar, eu testei e tá funcionado.

<?php
// Modo de Usar (URL, Método, Local, Valores, Browser [se desejar])
$redirecao = LocationURL("www.regnow.com", "GET", "/softsell/visitor.cgi", "affiliate=22260&action=site&vendor=4276");
echo $redirecao; // Exibe qual URL ele redireciono :P

// FUnção Propriamente dita
function LocationURL($host, $method, $path, $data, $useragent = 0) {
 if (empty($method)) { $method = "GET"; }
 $method = strtoupper($method);
 $fp	 = fsockopen($host, 80);
 if ($method == "GET") { $path .= ("?" . $data); }
 fputs($fp, "$method $path HTTP/1.1\r\n");
 fputs($fp, "Host: $host\r\n");
 fputs($fp,"Content-type: application/x-www-form- urlencoded\r\n");
 fputs($fp, "Content-length: " . strlen($data) . "\r\n");
 if ($useragent) { fputs($fp, "User-Agent: MSIE\r\n"); }
 fputs($fp, "Connection: close\r\n\r\n");
 if ($method == "POST") { fputs($fp, $data); }
 while (!feof($fp)) { $buf .= fgets($fp,128); }
 fclose($fp);
 // Aqui começa minha alteração
 $all_http = explode("\r\n", $buf);
 foreach ($all_http as $values) {
  if (substr(strtolower($values), 0, 10) == "location: ")  {
   return substr($values, 10, strlen($values));
   break;
  }
 }
}
?>

Básicamente é isso, quanto a segunda pegunta o que vc diz com "extrair conteúdo HTTPS", eu acessei essa URL e deu senha não consegui ver nada...

#8 B!ö$

B!ö$

    12 Horas

  • Usuários
  • 129 posts
  • Sexo:Masculino
  • Localidade:Randômico

Posted 23/07/2007, 14:19

Resolvido.

Obrigado, sk15.

#9 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 23/07/2007, 22:09

Solução mais simples e com menos POG: :P

<?php

$uri = 'http://www.regnow.com/softsell/visitor.cgi?affiliate=22260&action=site&vendor=4276';

foreach (get_headers($headers) as $pair) {
	@list($header, $value) = explode(':', $pair, 2);

	if (strtolower($header) == 'location') {
		$uri = $value;
	}
}

print $uri;

?>
[]’s :DAté mais

#10 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 29/07/2007, 18:07

LOL, sempre você `tisorando` meu barato ...
Mas eu sempre esqueço dessas funções menos conhecidas e usadas :P, sorte sua ter uma memória melhor que a minha :lol: - porém a minha tem 1 vantagem funciona em PHP < 5, sendo que a maioria dos serves por ai ainda 4.x.x.

Mas assim tem um pequeno erro no se esquema, vc coloco o nome das variaveis erradas ...
....
// $uri no ludar do $headers;  ou iverção de $headers para $uri fica a escolha ....
foreach (get_headers($uri) as $pair) {
....

Edição feita por: sk15, 29/07/2007, 18:09.





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq