Mon site Web utilise Apache 2.2.14 (qui transmet toutes les demandes à Tomcat situé en dessous).
Je dois empêcher tous les utilisateurs américains d'accéder au site Web (et éventuellement les utilisateurs d'autres pays). Mais surtout, je ne veux pas que cela interfère avec l’indexation et le classement de page de Google/Bing/Yahoo (les robots doivent être autorisés à l’accès).
Quelle est la meilleure façon d'y parvenir?
Vous recherchez une base de données Geoloction (Geoblocking) qui vous donnerait accès aux plages d'adresses IP typiques des pays que vous devez bloquer.
Ce ne sont cependant pas des informations absolues ou totalement dignes de confiance. Le géoblocage au niveau du pays est généralement efficace, mais tout ce qui ressemble à une ville, un état ou un code postal doit être traité. avec une grande prudence .
J'ai travaillé avec de grands fournisseurs de médias multinationaux utilisant des services payants coûteux et j'ai découvert que les informations contenues dans ces bases de données étaient très loin d'être correctes et que les circonstances particulières des utilisateurs empêchaient souvent le géoblocage d'être efficace et que ces blocs étaient relativement simples à contourner.
par ex. Les trains Virgin et East Coast au Royaume-Uni utilisent T-Mobile Germany en tant que fournisseur Internet à bord, vous semblez donc être en Allemagne sur de nombreux sites et processeurs de paiement.
Vous devez également rechercher les plages IP couramment utilisées par les robots des moteurs de recherche et les autoriser explicitement à indexer votre site.
Il y a de nombreuses bases de données de géolocalisation gratuites , MaxMind vient à l'esprit (bien que cela ne soit pas une recommandation de leur service), Google discute de la vérification google bot sur leur blog et les listes IP offrent des informations sur les plages d'adresses IP courantes des robots des moteurs de recherche (bien que je ne sache pas dans quelle mesure c'est fiable), donc d'autres recherches sont en cours conseillé .
Vous pouvez trouver quelques réflexions sur la mise en œuvre du géoblocage ici
Je dirais que si vous le faites pour des raisons de droits d'auteur ou pour éviter les mises au rebut DMCA permettant l'indexation à partir de moteurs de recherche américains, l'effet souhaité n'est peut-être pas satisfaisant, car la loi dans ce domaine n'est pas claire. La DCMA semble être redoutée par toutes les entreprises américaines, qui se sont d'abord retirées du jeu et ont refusé de répondre aux questions plus tard.
Vous devez utiliser mod_geoip de Maxmind. Lire manuel et exemple de configuration
J'ai écrit un algorithme pour détecter les IP iraniennes. Il peut être modifié pour détecter les visiteurs des États-Unis. Cet article est en persan et vous pouvez utiliser Google Translate pour le lire. Le lien est ici . plein algorighm:
<?php
$ips[1] = array (42991616,45088768,520568832,520585216,521717760,521725952,521754624,521758720,521764864,521791488,522002432,522715136,523182080,523763712,528658432,531247104,531355648,532185088,532770816,532779008,534368256,772995072,773148672,773605376,773849088,774004736,774021120,774135808,774275072,778305536,781123584,781459456,782516224,783792128,785448960,786432000,787808256,788013056,788094976,788242432,788518912,1044152320,1046904832,1052835840,1054629888,1294237696,1296908288,1298677760,1307394048,1307418624,1307959296,1311113216,1315815424,1315860480,1315897344,1318723584,1318920192,1319018496,1333723136,1334099968,1336578048,1336901632,1346547712,1346760704,1346859008,1347092480,1354694656,1358036992,1358790656,1358794752,1359740928,1360797696,1360801792,1360916480,1361027072,1361031168,1361043456,1364889600,1364951040,1364955136,1369636864,1382268928,1383268352,1402191872,1412415488,1425080320,1426669568,1427046400,1434812416,1438187520,1439039488,1446576128,1449992192,1466630144,1475137536,1475846144,1475903488,1485250560,1502642176,1503985664,1505280000,1507676160,1508589568,1533149184,1538801664,1538965504,1540258304,1540327936,1540400384,1540485632,1540624384,1540625152,1540684800,1540883456,1540964352,1541164800,1541325824,1541434880,1541451776,1541485568,1541595136,1541717248,1541789184,1541808128,1541947392,1541948416,1541949440,1542010880,1546268672,1546780672,1547546624,1547612160,1559412736,1567490048,1572739072,1581940736,1583710208,1583722496,1583738880,1586208768,1588985856,1589116928,1589149696,1592305664,1592885248,1596325888,1599111168,1599160320,1599209472,1599225856,1602369536,1602416640,1603198976,1833484288,1833623552,1834956800,1834958848,1835868160,1835966464,1835999232,1836761088,1836941312,1839366144,1841889280,1842061312,1843494912,1843806208,1844359168,1844379648,2151784448,2156658688,2193180672,2197798912,2453831680,2654648320,2668912640,2684297216,2765563904,2765568000,2765586432,2953592832,2955837440,2956496896,2956890112,2957197312,2959417344,2959421440,2959532032,2967277568,2967289856,2987730944,2987761664,2987804672,2994929664,2996633600,2997714944,3000434688,3000754176,3001819136,3001991168,3002044416,3002607616,3002847232,3002892288,3002925056,3156344832,3159048192,3160227840,3161866240,3162071040,3162079232,3162406912,3163062272,3164471296,3166679040,3170172928,3170697216,3238562560,3239884032,3244824064,3244872704,3244884480,3244885504,3244999680,3250420224,3258770432,3264386048,3269525504,3272902656,3277372416,3278775808,3281133568,3282739968,3284093440,3285396480,3287631360,3556884480,3557834752,3558981632,3560103936,3562012672,3562422272,3563028480,3564683264,3583213568,3585081344,3585089536,3585097728,3586326528,3587162112,3587776512,3588857856,3641380864,3642265600,3642306560,3644887040,3645030400,3645034496,3650277376,3651858432,3651952640,3652063232,3654942720);
$ips[2] = array (43253759,46137343,520585215,520589311,521719807,521727999,521756671,521760767,521766911,521793535,522010623,522717183,523190271,524025855,528662527,531251199,531357695,532201471,532772863,532783103,534370303,772997119,773152767,773607423,773857279,774012927,774029311,774143999,774283263,778371071,781189119,781463551,782532607,783794175,785514495,786563071,787841023,788021247,788103167,788250623,788520959,1044185087,1046908927,1052844031,1054638079,1294270463,1296924671,1298694143,1307402239,1307426815,1307963391,1311244287,1315819519,1315864575,1315901439,1318731775,1318928383,1319026687,1333755903,1334108159,1336580095,1336918015,1346551807,1346764799,1346863103,1347096575,1354760191,1358041087,1358794751,1358798847,1359773695,1360801791,1360805887,1360920575,1361031167,1361035263,1361051647,1364893695,1364955135,1364959231,1369638911,1382285311,1383276543,1402208255,1412431871,1425096703,1426685951,1427062783,1434845183,1438253055,1439055871,1446608895,1450000383,1466695679,1475139583,1475854335,1475911679,1485254655,1502658559,1504018431,1505288191,1507680255,1508605951,1533280255,1538809855,1538973695,1540258815,1540328447,1540400639,1540485887,1540624639,1540625407,1540685055,1540883711,1540964863,1541165055,1541326847,1541435391,1541452287,1541486591,1541595647,1541717503,1541789695,1541808383,1541948415,1541948927,1541950463,1542011903,1546270719,1546797055,1547550719,1547616255,1559420927,1567555583,1572741119,1581957119,1583714303,1583726591,1583742975,1586216959,1589116927,1589149695,1589182463,1592307711,1592901631,1596391423,1599127551,1599176703,1599225855,1599242239,1602371583,1602418687,1603203071,1833488383,1833627647,1834958847,1834960895,1835876351,1835974655,1836007423,1836777471,1836957695,1839398911,1841897471,1842069503,1843511295,1843822591,1844363263,1844383743,2151792639,2156691455,2193182719,2197815295,2453833727,2654650367,2668916735,2684299263,2765565951,2765570047,2765619199,2953596927,2955845631,2956500991,2956892159,2957201407,2959421439,2959423487,2959540223,2967281663,2967291903,2987732991,2987763711,2987806719,2994995199,2996649983,2997747711,3000451071,3000758271,3001823231,3001995263,3002048511,3002609663,3002849279,3002908671,3002941439,3156410367,3159064575,3160229887,3161882623,3162079231,3162087423,3162415103,3163095039,3164602367,3166681087,3170238463,3170729983,3238562815,3239884287,3244824319,3244872959,3244884735,3244885759,3245000703,3250420735,3258771455,3264387071,3269591039,3272902911,3277372927,3278776319,3281141759,3282740223,3284093951,3285397503,3287631871,3556886527,3557842943,3558989823,3560112127,3562020863,3562430463,3563036671,3564691455,3583221759,3585089535,3585097727,3585114111,3586342911,3587178495,3587784703,3588866047,3641384959,3642269695,3642310655,3644891135,3645034495,3645038591,3650281471,3651862527,3651960831,3652067327,3655073791);
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))$TheIp=$_SERVER['HTTP_X_FORWARDED_FOR'];else $TheIp=$_SERVER['REMOTE_ADDR'];
$TheIp=ip2long(trim($TheIp));
$count = count($ips[1]);$found=false;
for ($i = 0; $i <= $count; $i++) {
if ($TheIp>=$ips[1][$i]){
if ($TheIp<=$ips[2][$i]){
$found=true;
break;
}
}else if($TheIp<$ips[1][$i]){$found=false;break;}
}
unset($ips);
if ($found==false){ Code goes here }
?>
et vous pouvez obtenir les adresses IP américaines ici et modifier le tableau IP pour détecter les visiteurs des États-Unis.