Forum nom de domaine

Forum nom de domaine (http://www.forumndd.com/)
-   Développement (http://www.forumndd.com/developpement/)
-   -   Analyse d'usage de TLD - étude de cas: .paris (http://www.forumndd.com/developpement/11144-analyse-dusage-de-tld-etude-de-cas-paris.html)

kate 29/06/2015 15h58

Analyse d'usage de TLD - étude de cas: .paris
 
Analyse d'usage de TLD - étude de cas: .paris

Bonjour,

Aujourd'hui je vous présente une manière d'analyser de manière superficielle la façon dont une extension est utilisée. Nous allons tester .paris.

Cette méthodologie peut être appliquée à n'importe quelle extension.

Pour reconstituer cette expérience, vous avez besoin d'une machine (de préférence Linux) avec PHP + cURL au minimum.

Prérequis: se procurer un fichier de zone de l'extension désirée. Ensuite, il faudra extraire la liste des NDD dans un autre fichier.
Le fichier de zone .paris ressemble à ceci:

Code:

paris.  172800  in      soa    a.nic.fr.      hostmaster@nic.paris.  2222305222      3600    1800    3600000 5400
paris.  172800  in      rrsig  txt    8      1      172800  20150827030007  20150628020007  54160  paris.  Rj5Ho7AmLfiY10SshqLNkfPFHaHDFxWOdKtCMXD/Lp8BxIUrLMBfhn5/eMZcAeHH/s0D17JD7rVcvU17/AXNXHkJ13ZG4ig2SCndQHSujECKgKALk+4JN5IHQjffdRwUddJ2CIrozoxYoAlaNBkWDSQCw4m+WTYMhpNHNFPZWXo=
paris.  172800  in      txt    "No RRs processed [28/06/2015 05H00:04]"
paris.  172800  in      rrsig  soa    8      1      172800  20150827030007  20150628020007  54160  paris.  cE1UNxqLdETgKKpBF1NIKOZSRj3JW5EdXg5UIx+NFL50jzlQJnwIs/rBYJaP5UGbcdky56vdaZoso5l8wveW5aTkMAH/QdLsNBy8YWGLrJZmoizCpXno3M2idDrttdnpCzp53wfsy9nXeZKvMCOeN5XB70aadM/+Prs5SDGp4Kw=
paris.  172800  in      ns      d.nic.fr.
paris.  172800  in      ns      f.ext.nic.fr.
paris.  172800  in      ns      g.ext.nic.fr.
paris.  172800  in      ns      h.ext.nic.fr.
paris.  172800  in      rrsig  ns      8      1      172800  20150818141114  20150619141114  54160  paris.  S7OUxHf4MGJPSbi/2GQcOclTuD7iswXNP/6mkgFO08aS1N1/caANU8uxWuWi1LVuo1RSruMURK0YAAGd131cn/eRFe1xnqrVoaW1dIwrav2nwiUdkkokoaKZGdfmCTFn9+wy/w9nDhjmqdIR82nIqVzfGcKMUbZnvTSgX+hWdRs=
paris.  172800  in      dnskey  256    3      8      AwEAAYuVkbFaJvsjfCBEkhIgZNRKTkgUPVtGWEqGA74oqUDOVecwbmV5FX0oR9xMRTcmd0MdO9yWmuKYsTXNQa4AKxntjkwpTHLtwQrb+ZJ9qL3u39fTDDtkW3dT5AKW2/5zVQMHTZXtM6agckwJ6KZoYJfGomzY2xkv0TZ7tSi6S6Oz
paris.  172800  in      dnskey  256    3      8      AwEAAZqRmXzR+p3aC/nyxj7S1MQA7e118eSmbd40Q94qVBZSchn1Agq9St0oir+f56vP6q1mzp3CYJevK9uhC3hBuIOgTsZZB31taga2bDquCowTyjQqQS9Cgcv8fs339oYrcrsWDyrHxV+IPkHMGHXQU9m7dRsCuhPHXFLsovpIFjmr
paris.  172800  in      dnskey  257    3      8      AwEAAYv9TsYlXsU+ip1uQrQpAeFz2Sys3eEs7c8ZO4Q9EuaEUHFU08C7qZZDRP/CT7uFUEZ1IsOCWMk4l3awm0w1FZv4t7xbXg05HQ3sIQDAynEQ2QmTa0i/xnmg9wHaJJFXZx7zF6dnx1RBAls9jarVJlYRe2NcP4fMC42t5m3ZyrPx8IxWaLKG6/6CqoqleqzG1KVuK+cAWg1ITKDxoKCoYLyQFbgpNqIK7ov8WZBxN0kznx9YTPShylbdrosE/pu7mqC02XJEPXmCdykqKXhI9rrxZh3qfWrq/z1mV/I4nLpXFymtJP4UAgBTXKT9/mJhyKmeGLOhv8h3jzt6KrVV2Hk=
paris.  172800  in      rrsig  dnskey  8      1      172800  20150818141114  20150619141114  10139  paris.  E0cXOOPiXqSbVrow6sNbt1ssHKelQa+53n3r6RBtyCAcjJuSFGEqhldgha3MnRfXyUI1n33IfOl+Vympe8nALYG+UT1HFyVKWqgiTDzYdttY7V8PVwhwdNobHZsfzh6pw+HQXXK6k5sLZdG6J5KkiZ9Xcex6b4yPdvNbduH8Y6Q6m9Le6GIN393t+o41awGPOt8zcHDxKdyoG2W3qE5iN7bMqEZUEnSQy8CEoG94z5iDSFQTIRvH9mFQ3voB0qpF5jb0uGIoJBhxo5BENmyKNBv9+1fj6fE6IZL4JtRBgnwPOSBpuwYF1pJeqLCJy47Vt0B7od7QTja+4zjrJBGNFg==
paris.  172800  in      rrsig  dnskey  8      1      172800  20150818141114  20150619141114  54160  paris.  J5PgpDLmbSE6sUh9rlYcaZjO+Skwy7B30kIjghejxUHyY7P//3piHdRfqtexd3ld66sHpjD8iRLpiTYU64NuCVmtnbvGCVwqV8e25VUZdL0hYTIt23e/660fJ+kmddhcSKyBn8zCjWSgdww1GxYFkdmctPAhgBLqwDIVs34cTAw=
paris.  0      in      nsec3param      1      0      1      33bcee2e
paris.  0      in      rrsig  nsec3param      8      1      0      20150818141114  20150619141114  54160  paris.  V99xYm4V9LDDN48WhQfJh0sl84cYqS9xPZLl+BUhk3MnZLkniBEvynGNcOeQQX+E4k3BL980A/QVXtC8z9VjVjFrX5IPW15H2TfDCCi7KhUkLtL4M4lPyi/ZSiES2RX7zD7lFxm5DadTxRO0ScEZBzfdXluIHDucqQdTZk8L+bw=
001.paris.      172800  in      ns      ns-fr.1and1-dns.fr.
001.paris.      172800  in      ns      ns-fr.1and1-dns.biz.
001.paris.      172800  in      ns      ns-fr.1and1-dns.com.
001.paris.      172800  in      ns      ns-fr.1and1-dns.org.
007.paris.      172800  in      ns      ns-fr.1and1-dns.fr.
007.paris.      172800  in      ns      ns-fr.1and1-dns.biz.
007.paris.      172800  in      ns      ns-fr.1and1-dns.com.
007.paris.      172800  in      ns      ns-fr.1and1-dns.org.
007productions.paris.  172800  in      ns      ns-fr.1and1-dns.fr.
007productions.paris.  172800  in      ns      ns-fr.1and1-dns.biz.
007productions.paris.  172800  in      ns      ns-fr.1and1-dns.com.
007productions.paris.  172800  in      ns      ns-fr.1and1-dns.org.
01hotel.paris.  172800  in      ns      a.dns.gandi.net.
01hotel.paris.  172800  in      ns      b.dns.gandi.net.

Nous avons ainsi la liste quasi complète des NDD .paris actifs. Par exemple, vous pouvez constater que 4 DNS sont définis pour 007productions.paris. La norme c'est souvent deux DNS par NDD...

Le fichier de zone du 29/06 contient 18441 NDD, dont .paris proprement dit, qu'il faut donc déduire.

1. Analyse de DNS

Le but de cet exercice est d'établir un palmarès des serveurs DNS les plus utilisés. Nous allons établir un top 100.
Cette approche est intéressante par exemple pour avoir une idée du nombre de NDD qui sont probablement parkés, ou qui pointent toujours sur la page 'placeholder' du registrar.
Nous allons d'abord créer un fichier intermédiaire au départ du fichier de zone brut:

Code PHP:

awk  'BEGIN { OFS="," } { if (NF==5 && toupper($4)=="NS") { print $1,$5 } }'  paris.20150629.zone paris.20150629.all.ns 

Le fichier paris.20150629.all.ns ressemble à ceci:

Code:

paris.,d.nic.fr.
paris.,f.ext.nic.fr.
paris.,g.ext.nic.fr.
paris.,h.ext.nic.fr.
001.paris.,ns-fr.1and1-dns.fr.
001.paris.,ns-fr.1and1-dns.biz.
001.paris.,ns-fr.1and1-dns.com.
001.paris.,ns-fr.1and1-dns.org.
007.paris.,ns-fr.1and1-dns.fr.
007.paris.,ns-fr.1and1-dns.biz.

Comptage des DNS:

Code:

awk 'BEGIN { FS=","} { print $2 }' paris.20150629.all.ns | sort | uniq -c | sort -rn | head -n 100
Résultat:

Code:

  4507 b.dns.gandi.net.
  4507 a.dns.gandi.net.
  4506 c.dns.gandi.net.
  2321 ns-fr.1and1-dns.org.
  2321 ns-fr.1and1-dns.fr.
  2321 ns-fr.1and1-dns.com.
  2321 ns-fr.1and1-dns.biz.
  2113 dns110.ovh.net.
  2112 ns110.ovh.net.
  1242 ns200.anycast.me.
  1242 dns200.anycast.me.
    651 dns2.french-connexion.com.
    615 ns2.amenworld.com.
    615 ns1.amenworld.com.
    561 dns4.french-connexion.com.
    537 ns111.ovh.net.
    537 dns111.ovh.net.
    388 ns1.sedoparking.com.
    387 ns2.sedoparking.com.
    354 ns2.nom-domaine.fr.
    354 ns1.nom-domaine.fr.
    273 ns13.ovh.net.
    273 dns13.ovh.net.
    234 c.ns.mailclub.com.
    234 b.ns.mailclub.eu.
    234 a.ns.mailclub.fr.
    222 ns.udagdns.net.
    222 ns.udagdns.de.
    222 ns4.dns26.net.
    222 ns3.dns26.net.
    206 obs.ns1.fr.
    206 ns3.nameshield.net.
    206 ns2.observatoiredesmarques.fr.
    184 ns02.one.com.
    184 ns01.one.com.
    164 nsusa.comlaude.net.
    164 nssui.comlaude.ch.
    164 nsgbr.comlaude.co.uk.
    161 indom10.indomco.com.
    156 indom30.indomco.fr.
    154 indom20.indomco.net.
    149 indom80.indomco.hk.
    141 indom130.indomco.org.
    138 ns14.ovh.net.
    138 dns14.ovh.net.
    132 nsc.bookmyname.com.
    132 nsb.bookmyname.com.
    132 nsa.bookmyname.com.
    130 ns2.prodomaines.com.
    130 ns1.prodomaines.com.
    123 ns3.dodns.net.
    123 ns2.dodns.net.
    123 ns1.dodns.net.
    108 ns4.eurodns.com.
    108 ns3.eurodns.com.
    108 ns2.eurodns.com.
    108 ns1.eurodns.com.
    107 ns2.lws-hosting.biz.
    107 ns1.lws-hosting.biz.
    98 ns4.iptwins.com.
    98 ns3.iptwins.com.
    98 ns2.iptwins.net.
    98 ns1.iptwins.net.
    97 ns6.netnames.net.
    97 ns5.netnames.net.
    97 ns2.netnames.net.
    97 ns1.netnames.net.
    95 dns2.namebay.com.
    95 dns1.namebay.com.
    81 ns2.registrant-verification.com.
    81 ns1.registrant-verification.com.
    80 ns4.ascio.net.
    80 ns3.ascio.net.
    80 ns2.ascio.net.
    80 ns1.ascio.net.
    75 dns5.name-services.com.
    75 dns4.name-services.com.
    75 dns3.name-services.com.
    75 dns2.name-services.com.
    75 dns1.name-services.com.
    73 dns5.french-connexion.com.
    65 ns5.netim.net.
    65 ns4.netim.net.
    65 ns3.netim.net.
    65 ns2.netim.net.
    65 ns1.netim.net.
    65 b.ns.domainoo.fr.
    65 a.ns.domainoo.fr.
    64 ns3.instradns.com.
    64 ns2.instradns.com.
    64 ns1.instradns.com.
    59 ns5.101domain.com.
    59 ns2.dreamhost.com.
    59 ns2.101domain.com.
    59 ns1.dreamhost.com.
    59 ns1.101domain.com.
    58 ns3.dreamhost.com.
    56 sdns2.ovh.net.
    51 dns2.cscdns.net.
    51 dns1.cscdns.net.

Le résultat est assez parlant: près d'un quart des NDD sont hébergés (et probablement enregistrés) chez Gandi. Ils pointent probablement sur une page d'attente.
1&1 et OVH sont bien représentés dans le classement. Ces trois registrars/hébergeurs concentrent presque la moitié du volume.

Il y a 388 NDD parkés chez Sedo.

2. Crawl de site

Le but de cet exercice est de visiter les sites (s'ils existent) comme le ferait un robot. Voici un petit script PHP qui va lire la liste des NDD .paris et les visiter un par un (en rajoutant http://www. devant le NDD).

Attention: comme le but est didactique, ce script n'est pas du tout optimisé. Il visite un NDD à la fois, il n'y a pas de traitement parallèle.

Nous allons récupérer quelques infos:
  • le dernier code HTTP renvoyé par le serveur, sachant qu'on peut avoir une succession de codes: par exemple: 301 puis 302 et enfin 200. Evidemment si on 404 à la fin c'est mauvais, ça veut dire que le NDD n'est clairement pas exploité, ou mal redirigé :)
  • le temps total de connection (pour info)
  • l'adresse finale (après redirection éventuelle), on peut ainsi voir combien de .paris sont redirigés vers une autre extension (.com ou .fr par exemple).
  • les erreurs le cas échéant (timeout, pas de résolution). Les codes des erreurs et les descriptions sont ceux de cURL (les deux dernières colonnes).
On pourrait récupérer d'autres infos comme le titre de la page.
Les résultats sont enregistré dans un fichier de type CSV (séparateur: TAB).

A première vue, et selon un test grossier 1394 NDD seraient redirigées vers des .com:

Code:

awk 'BEGIN { FS="\t"; counter=0; } { if (match($3, /\.com/)) { counter++;  print counter,$1, " => ", $3; }  }' paris-results.csv
Et 892 vers des .fr.


Je vous laisse analyser les données et tirer les conclusions que vous voulez. Cette étude est volontairement superficielle, mais vous pouvez l'approfondir par vous-même.

A mon avis, le taux relativement important de redirections n'est pas étonnant.

PS: je joins un fichier .zip qui contient:
  • le fichier de zone
  • la liste des NDD
  • le script PHP
  • le fichier de résultats
Link: https://www.sendspace.com/file/hac3d9

domaine1 29/06/2015 16h14

Re : Analyse d'usage de TLD - étude de cas: .paris
 
merci beaucoup Kate !!!
j'ai du mal à me pencher sur les chiffres, mais sachant que tu l'as fait, tu as une conclusion à tirer sur l'usage du .paris ?
ce qui est intéressant, c'est de voir tous ceux qui ne sont pas utililés, alors que (de mémoire), le registre oblige, entre autres mesures débiles (c'est leur spécialité), à utiliser les noms de domaine portant l'extension .paris.
Parker est clairement contre les règles et ils sont en mesure d'effacer les ndd s'ils s'en rendent compte.

Didier 02/01/2016 15h00

Re : Analyse d'usage de TLD - étude de cas: .paris
 
Citation:

Envoyé par kate (Message 53051)
...

PS: je joins un fichier .zip qui contient:
  • le fichier de zone
  • la liste des NDD
  • le script PHP
  • le fichier de résultats
Link: https://www.sendspace.com/file/hac3d9

Sorry, the file you requested is not available.

PS si tu le re poste peux tu ajouter la notice :-)

kate 15/01/2016 11h50

Re : Analyse d'usage de TLD - étude de cas: .paris
 
Bonjour,

Les fichiers sont à nouveau disponibles. Voir le premier post.

Voici le script PHP complet:
Code PHP:

<?php
$domain_list 
'paris.20150629.all.txt';
$results_file 'paris-results.csv';
$delimiter "\t";
$counter 1;

$ch curl_init();
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
// set misc options
curl_setopt($chCURLOPT_USERAGENT"Opera/9.80 (Windows NT 5.0; U; en) Presto/2.7.62 Version/11.00");
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
curl_setopt($chCURLOPT_AUTOREFERER1);
curl_setopt($chCURLOPT_CONNECTTIMEOUT30);
//curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
curl_setopt($chCURLOPT_SSL_VERIFYPEER0);

// read list of domains
$fr = @fopen($domain_list"r");
if (
$fr) {
    
$fw = @fopen($results_file,"a+");
    while ((
$buffer fgets($fr4096)) !== false) {
        
$domain=strtolower(trim($buffer));
        echo 
"Trying to crawl domain $domain ($counter)\n";
        
$url="http://www.$domain/";
        
        
// attempt to fetch URL
        
curl_setopt($chCURLOPT_URL$url);
        
$output curl_exec($ch);

        
$info curl_getinfo($ch);
        
$error_code curl_errno($ch);
        
$error_description curl_error($ch);
        
$final_url $info['url'];
        
$last_http_code $info['http_code'];
        
$total_time $info['total_time'];
        echo 
"-----------------------------------------------\n"
        
"Final URL: $final_url\n"
        
"Last HTTP code: $last_http_code\n"
        
"Total time: $total_time\n"
        
"Error code: $error_code\n"
        
"Error description: $error_description\n"
        
"-----------------------------------------------\n"
        
;
        
        
fwrite($fw $domain $delimiter
        
$last_http_code $delimiter
        
$final_url $delimiter
        
$total_time $delimiter
        
$error_code $delimiter
        
$error_description
        
"\n"); // write result to file

        
$counter++;
    }
    
fclose($fw);
    if (!
feof($fr)) {
        echo 
"Error: unexpected fgets() fail\n";
    }
    
fclose($fr);
}

curl_close ($ch);

?>

Le fichier de résultats ressemble à ceci:
Code:

001.paris        200        http://www.001.paris/        0.383494        0       
007.paris        200        http://www.007.paris/        0.045598        0       
007productions.paris        200        http://www.007productions.paris/        0.050499        0       
01hotel.paris        200        http://www.01hotel.paris/        0.031397        0       
01hotels.paris        200        http://www.01hotels.paris/        0.031758        0       
037.paris        200        http://www.037.paris/        0.038116        0       
0800.paris        0        http://www.0800.paris/        0        6        Couldn't resolve host 'www.0800.paris'
0800flowers.paris        200        http://www.0800flowers.paris/        0.198097        0       
1-800-flowers.paris        200        http://www.1-800-flowers.paris/        0.189507        0       
1-ambassadeur-1-entrepreneur.paris        200        http://www.1-ambassadeur-1-entrepreneur.paris/        0.058348        0       
10-meilleurs-restaurants.paris        200        http://www.10-meilleurs-restaurants.paris/        0.236525        0       
100.paris        200        http://100.paris/        0.732904        0       
1000.paris        0        http://www.1000.paris/        29.35908        28        Connection timed out after 30000 milliseconds
1000maires.paris        200        http://www.1000maires.paris/        0.188261        0       
1000stylos.paris        200        http://www.stylopublicitaire.paris/        0.280651        0



Fuseau horaire : GMT +1. Il est 04h57.