Publié le 22/11/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
1 commentaires

Trouver l'URL d'origine d'un lien TinyURL

Lancé en 2002, TinyURL est un outil utilisé sur le web pour afficher des url courtes. Par exemple, l'adresse http://www.fobec.com/ peut s'écrire http://tinyurl.com/3xk4g8a en utilisant le service tinyurl.
A quoi ça sert ? a priori, les 2 raisons sont : la réduction du nombre de caractère (cf tweet) et le fait de masquer l'url réelle lorsque l'on affiche un lien.

Class PHP TinyUrl

La class TinyurlRevealer décode un lien TinyUrl pour afficher l'adresse réel. Une requête HEAD est envoyée au serveur pour connaitre l'url de redirection.
<?php
 
/**
 * Découvrir l'URL derrière un lien TinyUrl
 */
class TinyurlRevealer {
 
    public static function decode($url) {
        $urls = parse_url($url);
        $param = $urls['path'];
 
        $fp = fsockopen("tinyurl.com", 80);
        if (!$fp) {
            return "";
        } else {
            $buf = "";
            fputs($fp, "HEAD " . $param . " HTTP/1.0\r\nHost: tinyurl.com\r\n\r\n");
            while (!feof($fp)) {
                $buf.= fgets($fp, 128);
            }
            fclose($fp);
            //Cherche la redirection vers l'URL réel
            $lines = explode("n", $buf);
            foreach ($lines as $line) {
                if (strpos($line, 'Location') !== false) {
                    return substr($line, 10);
                }
            }
            return '';
        }
    }
}
?>

Décoder une URL raccourcie

Quelle URL se cache derrière http://tinyurl.com/3xf5cyp
Pour connaitre l'adresse du site, il faudrait cliquer sur l'url pour ensuite voir l'url d'origine dans le navigateur internet. Le bout de code permet d'extraire directement l'adresse source sans passer par le navigateur. L'astuce consiste à repérer la redirection 301 puis d'extraire la nouvelle URL indiquée dans le paramètre location.
<php
/**
 * Exemple
 */
echo TinyurlRevealer::decode('http://tinyurl.com/3xf5cyp');
//Resultat: http://www.fobec.com
?>

Depuis de nombreux services ont été lancés que l'on retrouve notamment sur Twitter. La manière de décoder une url raccourci marche également pour découvrir l'adresse internet d'origine sans passer par le navigateur.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar options binaires

Publié par options binaires

le 23/01/2012 à 16:52:36

genial l'outil ! merci

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - class
Mise a jour
22/11/2010
Visualisation
vu 5465 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 267 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Fobec dans php5

a priori il manque simplement le R dans le nom de la constante
PDO::ATTR_ERRMODE en remplacement de PDO::ATT_ERRMODE

Publié par Roger HENRI dans CMS

Je ne suis pas sûr que cette procédure marche toujours parfaitement à cause du mot
"selstart" qui, chez moi au moins, paraît être capricieux.

Quand je veux lir...

Publié par robbie dans tuto

marche pas le code le la boite de confirmation
faut-il inclure: { dans le code ou les enlever? merci d'avance pour la reponse (si possible pas par mail merci)

Publié par Bonjour dans java

Joli travail!
Par contre, savez vous que votre barre de progression s'arrête à un certain pourcentage?

Publié par hungerGames dans php5

Salut!
je suis un debutant en php,et lorsque j'ai execute le code
sur la creation de la base 'member',on m'a affiche cet message:
"Undefined class constant 'ATT_ERRMOD...