Pays du bloc de mon site Web

  • devilwood
  • Silver Member
  • Silver Member
  • Avatar de l’utilisateur
  • Inscription: Nov 18, 2007
  • Messages: 429
  • Status: Offline

Message Février 15th, 2012, 7:42 am

Jusqu'à tout récemment Ive a jamais même considéré comme bloquant les autres pays. Cependant, nos serveurs ont été ayant des questions de certaines adresses IP russe/ukrainien. Lorsque j'ai donné mon rapport à mon Boss ils étaient sidéré cause notre service est spécifique au USA et nous avons zéro désir d'atteindre un marché russe. Je me suis dit il devait y avoir une solution là pour verrouiller mon serveur web à la population des USA parce que nous ne sommes pas concernés par l'Europe aux Philippines, et si nous pourrions bloquer complètement c'est juste moins nous devons à s'inquiéter. Tout d'abord, j'ai parlé aux gens de notre serveur pour voir ce qu'ils pouvaient fournir des solutions et qu'ils ne étaient pas beaucoup aider. Elles ont mentionné un mods apache, mais l'utilisation de la mémoire et les frais généraux était trop grande et ils ont dit que nous verrions une différence notable dans la vitesse de notre site Web. Aussi, certains utilisateurs qui sont connectent par l'intermédiaire de mandataires pourraient obtenir bloqués.... nous ne sommes pas inquiets pour eux. Il y a d'autres qui utilise une base de données mais j'étais inquiet de la vitesse de recherche, optimisation de la db, précision et desuet information.

Cela m'a penser...

Après avoir examiné les blocs IP par pays, j'ai remarqué que le premier octet est différent par pays. Ainsi, 207.xxx.xxx.xxx seront des USA.

Pouvais juste faire une petite table avec seulement les Etats-Unis premiers octets ? Puis, en utilisant get PHP adressesIP les utilisateurs à l'aide de $_SERVER ["REMOTE_ADDR"];. Ensuite, je pourrais exploser l'utilisateurs IP dans les décimales. Enfin, je pourrais comparer le premier octet d'utilisateurs IP avec une petite base de données nous octets.

Cela fonctionnerait ? AM qu'i droit de supposer que le premier octet est spécifique au pays ? Aussi, combien de fois les blocs IP par pays changent ?

Merci pour toute aide ou des conseils. Vraiment il faut un moyen plus facile de se connecter à un serveur web à une zone spécifique seulement. Ses stupide que quelqu'un de l'autre côté de la planète a accès à votre serveur et qu'il peut tenter de manipuler/sabotage le serveur comme ils veulent.
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Février 15th, 2012, 7:42 am

  • devilwood
  • Silver Member
  • Silver Member
  • Avatar de l’utilisateur
  • Inscription: Nov 18, 2007
  • Messages: 429
  • Status: Offline

Message Février 15th, 2012, 10:45 am

IVe été aujourd'hui la plus dans cette recherche et trouvé un service appelé Cloudflare.com qui prend en charge le DNS pour votre domaine et vos enregistrements de l'hôte. Im en utilisant sur un site d'essai pour mesurer les performances et les fonctionnalités avec le compte libre, mais elle est prometteuse. Mes DNS de mettre à jour si Im sur le point de jouer plus avec lui.

Le service GeoIP API de Maxmind doit être configuré avec votre serveur Web afin de travailler. Juste pour PHP, j'ai remarqué qu'ils avaient une extension PECL et PEAR qui est agréable mais nécessite encore une configuration plus que je veux faire. J'ai remarqué qu'ils n'ont pas un Service de Web GeoIP Country pour un petit prix, où 200 000 requêtes seront déroulera environ 20 $. Si mon calcul est droit qu'alors cela doit nous durer environ 30 ans.

J'ai trouvé un service gratuit de web API appelé hostip.info. J'ai écrit un petit appel CURL avec PHP pour envoyer la requête GET. J'ai testé quelques IPs provenant d'autres pays et ils sont retournés avec précision mais mon IP n'est pas dans leur base de données. Elle renvoie le code de pays est XX. Cela peut encore fonctionner. Je devais juste utiliser n'importe quel pays qui est XX ou nous.


J'aimerais bien savoir l'exactitude du premier octet, ce qui a trait au pays. Il semble qu'un tableau d'octets seulement premières U.S. serait assez faible.
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Février 15th, 2012, 12:11 pm

Bonjour Devilwood

Avant de vous posté votre 2ème post, j'allais répondre à vous faire savoir que nous utilisons Maxmind pour le blocage de certains pays de l'enregistrement à Ozzu. Nous utilisons le module Apache GeoIP et ont remarqué aucune lente downs, quant à la performance. Il œuvres assez bien que Maxmind a cartographié la plupart du temps tout et quels blocs de propriété intellectuelle appartiennent à ce pays.

Juste pour votre information, nous utilisons la base de données gratuite par Maxmind, et qui a été de loin plus que suffisante pour nos besoins. Pour mon propre référence, j'ai écrit les notes sur ce que je dois faire pour installer GeoIP sur un serveur de Cpanel, mais aussi où se trouvent les bases de données gratuites. Donc je distribuerai que dans ce post au cas où cela s'avère utile pour vous ou quelqu'un d'autre :

Installer GeoIP sur serveur CPanel



Télécharger des bases de données plus de MaxMind et les mettre dans :

/ opt/geoip/partager/GeoIP :

Les bases de données sont trouvent ici :

http://geolite.maxmind.com/download/geoip/database/

Obtenir la dernière version de la base de données pour le pays et la ville (tout ce que nous utilisons) :
http://geolite.maxmind.com/download/geo ... oIP.dat.gz
http://geolite.maxmind.com/download/geo ... ity.dat.gz

Installez le module CPanel EasyApache GeoIP :

* Voir les détails :http://docs.cpanel.net/twiki/bin/view/E ... CustomMods
* Télécharger mod_GeoIP :

wgethttp://docs.cpanel.net/twiki/pub/EasyAp ... oip.tar.gz

tar - xzf de /var/cpanel/easy/apache/custom_opt_mods - C custom_opt_mod-mod_geoip.tar.gz

* Exécuter EasyApache et sélectionnez le mod GeoIP :

/ scripts/easyapache

Configurer GeoIP en ajoutant à httpd.conf (ou pre_virtualhost_global.conf) :

* /usr/local/apache/conf/httpd.conf
* /usr/local/apache/conf/includes/pre_virtualhost_global.conf

GeoIPEnable sur
GeoIPDBFile "/ opt/geoip/share/GeoIP/GeoIP.dat"
GeoIPDBFile "/ opt/geoip/share/GeoIP/GeoCity.dat"

Redémarrez Apache :

/ scripts/restartsrv_apache

Voici un test très rapide et sale script PHP pour voir si sa fonctionne correctement :

PHP Code: [ Select ]
$cont="$_SERVER[GEOIP_CONTINENT_CODE]";
$country="$_SERVER[GEOIP_COUNTRY_CODE]";
$country_name="$_SERVER[GEOIP_COUNTRY_NAME]";
$region="$_SERVER[GEOIP_REGION]";
$regionname="$_SERVER[GEOIP_REGION_NAME]";
$city="$_SERVER[GEOIP_CITY]";
$areacode="$_SERVER[GEOIP_AREA_CODE]";
$geolat="$_SERVER[GEOIP_LATITUDE]";
$geolong="$_SERVER[GEOIP_LONGITUDE]";
$postalcode="$_SERVER[GEOIP_POSTAL_CODE]";
// a standard Apache environment variable
$rem="$_SERVER[REMOTE_ADDR]";
// output the data
echo "Continent: $cont | Country Abbrev: $country | Name: $country_name<br>";
echo "Region: $region | Region Name: $regionname | City: $city<br>";
echo "Area Code: $areacode | Postal code/Zip: $postalcode<br>";
echo "Latitude: $geolat | Longitude: $geolong<br>";
echo "Ip: $rem<br>";
echo "<hr></center>";
exit;
  1. $cont="$_SERVER[GEOIP_CONTINENT_CODE]";
  2. $country="$_SERVER[GEOIP_COUNTRY_CODE]";
  3. $country_name="$_SERVER[GEOIP_COUNTRY_NAME]";
  4. $region="$_SERVER[GEOIP_REGION]";
  5. $regionname="$_SERVER[GEOIP_REGION_NAME]";
  6. $city="$_SERVER[GEOIP_CITY]";
  7. $areacode="$_SERVER[GEOIP_AREA_CODE]";
  8. $geolat="$_SERVER[GEOIP_LATITUDE]";
  9. $geolong="$_SERVER[GEOIP_LONGITUDE]";
  10. $postalcode="$_SERVER[GEOIP_POSTAL_CODE]";
  11. // a standard Apache environment variable
  12. $rem="$_SERVER[REMOTE_ADDR]";
  13. // output the data
  14. echo "Continent: $cont | Country Abbrev: $country | Name: $country_name<br>";
  15. echo "Region: $region | Region Name: $regionname | City: $city<br>";
  16. echo "Area Code: $areacode | Postal code/Zip: $postalcode<br>";
  17. echo "Latitude: $geolat | Longitude: $geolong<br>";
  18. echo "Ip: $rem<br>";
  19. echo "<hr></center>";
  20. exit;


Et Voici un script perl que vous pouvez utiliser ou un port pour garder la base de données Maxmind mise à jour :

PERL Code: [ Select ]
#!/usr/bin/perl
    use strict;
    our $VERSION = '0.01';
    use LWP::Simple qw/ mirror RC_NOT_MODIFIED RC_OK $ua /;
    use File::Copy  qw/ mv /;
    use File::Spec;
    use PerlIO::gzip;
 
    # --- maxmind.com - please send comments to support@maxmind.com
    #
    # mirror various maxmind databases from geolite.maxmind.com.
    # The script download only changed files, unzip the files and
    # move it into the desired directory.
    #
    # Here is a sample cron entry that check daily for new files.
    # 34 15 * * * /usr/local/bin/geolite-mirror-simple.pl
 
    # adjust the path to your needs. Make sure the directories exists
    -d ( my $download_dir = '/opt/geoip/share/GeoIP/download' ) or die $!;
    -d ( my $dest_dir     = '/opt/geoip/share/GeoIP' )          or die $!;
 
    # --- remove lines you do not need
    # geoip customers should rename or remove GeoIP.dat.gz and GeoIPCity.dat.gz
    # >>> This example overwrite your GeoIPCity.dat database! <<<
 
    my %mirror = (    # local-filename       geolite-name
                   'GeoIP.dat.gz'      => 'GeoLiteCountry/GeoIP.dat.gz',
                   'GeoIPCity.dat.gz'  => 'GeoLiteCity.dat.gz',
                   'GeoIPv6.dat.gz'    => 'GeoIPv6.dat.gz',
                   'GeoIPASNum.dat.gz' => 'asnum/GeoIPASNum.dat.gz'
    );
 
    $ua->agent("MaxMind-geolite-mirror-simple/$VERSION");
    my $dl_path = 'http://geolite.maxmind.com/download/geoip/database/';
 
    chdir $download_dir or die $!;
    for my $f ( keys %mirror ) {
      my $rc = mirror( $dl_path . $mirror{$f}, $f );
      next if $rc == RC_NOT_MODIFIED;
      if ( $rc == RC_OK ) {
        ( my $outfile = $f ) =~ s/.gz$//;
        open my $in,  '<:gzip', $f       or die $!;
        open my $out, '>',      $outfile or die $!;
        print $out $_ or die $! while <$in>;
        mv( $outfile, File::Spec->catfile( $dest_dir, $outfile ) ) or die $!;
      }
    }
    exit 0;
  1. #!/usr/bin/perl
  2.     use strict;
  3.     our $VERSION = '0.01';
  4.     use LWP::Simple qw/ mirror RC_NOT_MODIFIED RC_OK $ua /;
  5.     use File::Copy  qw/ mv /;
  6.     use File::Spec;
  7.     use PerlIO::gzip;
  8.  
  9.     # --- maxmind.com - please send comments to support@maxmind.com
  10.     #
  11.     # mirror various maxmind databases from geolite.maxmind.com.
  12.     # The script download only changed files, unzip the files and
  13.     # move it into the desired directory.
  14.     #
  15.     # Here is a sample cron entry that check daily for new files.
  16.     # 34 15 * * * /usr/local/bin/geolite-mirror-simple.pl
  17.  
  18.     # adjust the path to your needs. Make sure the directories exists
  19.     -d ( my $download_dir = '/opt/geoip/share/GeoIP/download' ) or die $!;
  20.     -d ( my $dest_dir     = '/opt/geoip/share/GeoIP' )          or die $!;
  21.  
  22.     # --- remove lines you do not need
  23.     # geoip customers should rename or remove GeoIP.dat.gz and GeoIPCity.dat.gz
  24.     # >>> This example overwrite your GeoIPCity.dat database! <<<
  25.  
  26.     my %mirror = (    # local-filename       geolite-name
  27.                    'GeoIP.dat.gz'      => 'GeoLiteCountry/GeoIP.dat.gz',
  28.                    'GeoIPCity.dat.gz'  => 'GeoLiteCity.dat.gz',
  29.                    'GeoIPv6.dat.gz'    => 'GeoIPv6.dat.gz',
  30.                    'GeoIPASNum.dat.gz' => 'asnum/GeoIPASNum.dat.gz'
  31.     );
  32.  
  33.     $ua->agent("MaxMind-geolite-mirror-simple/$VERSION");
  34.     my $dl_path = 'http://geolite.maxmind.com/download/geoip/database/';
  35.  
  36.     chdir $download_dir or die $!;
  37.     for my $f ( keys %mirror ) {
  38.       my $rc = mirror( $dl_path . $mirror{$f}, $f );
  39.       next if $rc == RC_NOT_MODIFIED;
  40.       if ( $rc == RC_OK ) {
  41.         ( my $outfile = $f ) =~ s/.gz$//;
  42.         open my $in,  '<:gzip', $f       or die $!;
  43.         open my $out, '>',      $outfile or die $!;
  44.         print $out $_ or die $! while <$in>;
  45.         mv( $outfile, File::Spec->catfile( $dest_dir, $outfile ) ) or die $!;
  46.       }
  47.     }
  48.     exit 0;


Enregistrer le script ci-dessus à :

/ scripts/updategeoipdata

ou mis en /etc/cron.daily/updategeoipdata

chmod 755

Vous devrez peut-être installer PerlIO::gzip avec :

perlinstaller/scripts/PerlIO::gzip

pour obtenir le script fonctionne correctement.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • devilwood
  • Silver Member
  • Silver Member
  • Avatar de l’utilisateur
  • Inscription: Nov 18, 2007
  • Messages: 429
  • Status: Offline

Message Février 15th, 2012, 1:06 pm

Wow. Merci BWM.

Alors, qu'appelez-vous la variable de serveur GeoIP Country Code dans chaque script puis IF/ELSE il. Comme :

Code: [ Select ]
$country="$_SERVER[GEOIP_COUNTRY_CODE]";

if ($country == "US") {
// run script
} else {
exit();
}
  1. $country="$_SERVER[GEOIP_COUNTRY_CODE]";
  2. if ($country == "US") {
  3. // run script
  4. } else {
  5. exit();
  6. }


Im toujours inquiet avec la performance, mais peut-être a une incidence sur le rendement ont été principalement basée sur le point de restriction. Par exemple, si la restriction a été utilisée dans l'exemple ci-dessus ou si un fichier htaccess a été utilisé ou si apache a géré la restriction??


Grâce à une tonne pour l'Ecrit. Il démystifiées grandement l'installation. Je ne vois pas de n'importe quelle raison pourquoi je ne peux pas suivre ces instructions. Ils cherchent à être dans mon timonerie. Aussi, merci pour le dernier script perl comme maintenir à jour a été une préoccupation majeure aussi bien.

Enfin, mon dernier problème était avec les mandataires et les utilisateurs de AOL. MaxMind dit sur leur site qu'ils nous reviennent pour tous les utilisateurs d'AOL qui est un plus gros. Vous savez de toute inexactitude ou de tout problème avec cette déclaration ? Nous avons été au point que nous a fait se soucie pas de tous les utilisateurs AOL auxquels ont été connectés à l'aide de proxies dans d'autres pays, mais c'est un gros avantage de GeoIP si il les gère correctement que nous maintenant ne pas les exclure.
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8925
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Février 15th, 2012, 1:13 pm

Ouais donc tout faire dans le fichier .htaccess est le suivant :

GeoIPEnable sur

Depuis effectivement désactiver il pour des domaines sur le serveur sauf si explicitement activé. Que lui-même peut enregistrer sur un peu de performance, que je devine. Puis comme dans votre exemple de script, un simple si l'instruction peut être utilisée. Dans mon cas, je fais quelque chose comme ceci :

PHP Code: [ Select ]
'BANNED_COUNTRY'                => (isset($_SERVER['GEOIP_COUNTRY_CODE']) && preg_match("/^(BD|ID|IN|PK|PH)$/",$_SERVER['GEOIP_COUNTRY_CODE']) ? true : false),


Qui définit essentiellement une autre variable « BANNED_COUNTRY » pour être vrai si il correspond à BD, ID, IN, PK ou le PH. Votre exemple est plus simplifié et peuvent être utilisé de cette manière était bien.

Donc dans mon cas j'utilise tout simplement .htaccess afin de lui permettre, et puis le reste est géré par l'intermédiaire de la variable PHP $_SERVER.

Comme AOL, je crois que vous avez raison qu'ils reviennent tout simplement un emplacement pour chacun d'entre eux. Pour notre situation c'est bien ainsi, je crois si vous payez pour la version commercialisée, alors ils vous donnera plus d'informations sur les utilisateurs si vous avez vraiment besoin que. Dans mon cas la version gratuite est de loin ce qu'il faut pour tous les utilisateurs de AOL regroupement en un seul endroit n'était aucun problème pour nous.

Heureux de ce pourrait être de l'aide, j'essaie de garder des notes sur certaines choses de temps en temps, et c'était l'un d'entre eux:)
Ozzu Hosting - Want your website on a fast server like Ozzu?

Afficher de l'information

  • Total des messages de ce sujet: 5 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 254 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC