Foros del Web » Creando para Internet » HTML »

Bloquear visitas de países con geoplugin

Estas en el tema de Bloquear visitas de países con geoplugin en el foro de HTML en Foros del Web. Hola!, Me registré hace algunos minutos a la web seguido de un enlace de google por un problema que tengo xd . últimamente me están ...
  #1 (permalink)  
Antiguo 02/08/2015, 15:26
 
Fecha de Ingreso: agosto-2015
Mensajes: 7
Antigüedad: 9 años, 3 meses
Puntos: 0
Bloquear visitas de países con geoplugin

Hola!,

Me registré hace algunos minutos a la web seguido de un enlace de google por un problema que tengo xd .

últimamente me están llegando visitas de Rusia, Ucrania y Indonesia, entonces estuve buscando algún código para implementar en mi web que me permita redireccionar hacia otra pagina estas visitas. Algo como un 404.

He probado con .htaccess pero pasa que es demasiado pesado y se hace pesado al momento de cargar la web.

¿Podrían ayudarme con este dilema? Por favor.
  #2 (permalink)  
Antiguo 02/08/2015, 20:42
 
Fecha de Ingreso: mayo-2015
Ubicación: Localhost
Mensajes: 13
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Bloquear visitas de países con geoplugin

Primero crea un archivo con el nombre: Geoplugin.class.php
en el coloca lo siguiente:
Código PHP:
Ver original
  1. <?php
  2.  
  3. class geoPlugin {
  4.    
  5.     //the geoPlugin server
  6.     var $host = 'http://www.geoplugin.net/php.gp?ip={IP}&base_currency={CURRENCY}';
  7.        
  8.     //the default base currency
  9.     var $currency = 'USD';
  10.    
  11.     //initiate the geoPlugin vars
  12.     var $ip = null;
  13.     var $city = null;
  14.     var $region = null;
  15.     var $areaCode = null;
  16.     var $dmaCode = null;
  17.     var $countryCode = null;
  18.     var $countryName = null;
  19.     var $continentCode = null;
  20.     var $latitude = null;
  21.     var $longitude = null;
  22.     var $currencyCode = null;
  23.     var $currencySymbol = null;
  24.     var $currencyConverter = null;
  25.    
  26.     function geoPlugin() {
  27.  
  28.     }
  29.    
  30.     function locate($ip = null) {
  31.        
  32.         global $_SERVER;
  33.        
  34.         if ( is_null( $ip ) ) {
  35.             $ip = $_SERVER['REMOTE_ADDR'];
  36.         }
  37.        
  38.         $host = str_replace( '{IP}', $ip, $this->host );
  39.         $host = str_replace( '{CURRENCY}', $this->currency, $host );
  40.        
  41.         $data = array();
  42.        
  43.         $response = $this->fetch($host);
  44.        
  45.         $data = unserialize($response);
  46.        
  47.         //set the geoPlugin vars
  48.         $this->ip = $ip;
  49.         $this->city = $data['geoplugin_city'];
  50.         $this->region = $data['geoplugin_region'];
  51.         $this->areaCode = $data['geoplugin_areaCode'];
  52.         $this->dmaCode = $data['geoplugin_dmaCode'];
  53.         $this->countryCode = $data['geoplugin_countryCode'];
  54.         $this->countryName = $data['geoplugin_countryName'];
  55.         $this->continentCode = $data['geoplugin_continentCode'];
  56.         $this->latitude = $data['geoplugin_latitude'];
  57.         $this->longitude = $data['geoplugin_longitude'];
  58.         $this->currencyCode = $data['geoplugin_currencyCode'];
  59.         $this->currencySymbol = $data['geoplugin_currencySymbol'];
  60.         $this->currencyConverter = $data['geoplugin_currencyConverter'];
  61.        
  62.     }
  63.    
  64.     function fetch($host) {
  65.  
  66.         if ( function_exists('curl_init') ) {
  67.                        
  68.             //use cURL to fetch data
  69.             $ch = curl_init();
  70.             curl_setopt($ch, CURLOPT_URL, $host);
  71.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  72.             curl_setopt($ch, CURLOPT_USERAGENT, 'geoPlugin PHP Class v1.0');
  73.             $response = curl_exec($ch);
  74.             curl_close ($ch);
  75.            
  76.         } else if ( ini_get('allow_url_fopen') ) {
  77.            
  78.             //fall back to fopen()
  79.             $response = file_get_contents($host, 'r');
  80.            
  81.         } else {
  82.  
  83.             trigger_error ('geoPlugin class Error: Cannot retrieve data. Either compile PHP with cURL support or enable allow_url_fopen in php.ini ', E_USER_ERROR);
  84.             return;
  85.        
  86.         }
  87.        
  88.         return $response;
  89.     }
  90.    
  91.     function convert($amount, $float=2, $symbol=true) {
  92.        
  93.         //easily convert amounts to geolocated currency.
  94.         if ( !is_numeric($this->currencyConverter) || $this->currencyConverter == 0 ) {
  95.             trigger_error('geoPlugin class Notice: currencyConverter has no value.', E_USER_NOTICE);
  96.             return $amount;
  97.         }
  98.         if ( !is_numeric($amount) ) {
  99.             trigger_error ('geoPlugin class Warning: The amount passed to geoPlugin::convert is not numeric.', E_USER_WARNING);
  100.             return $amount;
  101.         }
  102.         if ( $symbol === true ) {
  103.             return $this->currencySymbol . round( ($amount * $this->currencyConverter), $float );
  104.         } else {
  105.             return round( ($amount * $this->currencyConverter), $float );
  106.         }
  107.     }
  108.    
  109.     function nearby($radius=10, $limit=null) {
  110.  
  111.         if ( !is_numeric($this->latitude) || !is_numeric($this->longitude) ) {
  112.             trigger_error ('geoPlugin class Warning: Incorrect latitude or longitude values.', E_USER_NOTICE);
  113.             return array( array() );
  114.         }
  115.        
  116.         $host = "http://www.geoplugin.net/extras/nearby.gp?lat=" . $this->latitude . "&long=" . $this->longitude . "&radius={$radius}";
  117.        
  118.         if ( is_numeric($limit) )
  119.             $host .= "&limit={$limit}";
  120.            
  121.         return unserialize( $this->fetch($host) );
  122.  
  123.     }
  124.  
  125.    
  126. }
  127.  
  128. ?>
Ahora crear un archivo con el nombre : geoip.php
en el coloca lo siguiente:
Código PHP:
Ver original
  1. <?php
  2. require_once('geoplugin.class.php');
  3. $geoplugin = new geoPlugin();
  4. $geoplugin->locate();
  5. $country_code = $geoplugin->countryCode;
  6. switch($country_code) {
  7. case 'RU': //Rusia
  8. header('Location: http://google.ru'); //Aquí es donde los redireccionara.
  9. case 'ID': //Indonesia
  10. header('Location: http://google.co.id');
  11. case 'UA': //Ucrania
  12. header('Location: http://google.ua');
  13. }
  14. ?>

y por ultimo coloca lo siguiente, en las páginas que quieres que se aplique.
Código PHP:
Ver original
  1. <?php include("geoip.php"); ?>
  #3 (permalink)  
Antiguo 03/08/2015, 04:00
 
Fecha de Ingreso: agosto-2015
Mensajes: 7
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Bloquear visitas de países con geoplugin

Cita:
Iniciado por 0fran Ver Mensaje
...
Hola amigo y muchas gracias por responder enserio (disculpa por contestar tan tarde, pasaron demasiadas cosas :c), espero que no te molestes jeje, pero en dónde exactamente agrego todo, tengo montado mi sitio web en un hosting de pago, y mi web es una Faucet de bitcoin, no sé si sepas del tema. Pasa que mi web está montado con un script libre que da faucetbox y dentro se tienen dos archivos index.php, uno que va en la ruta /public_html/ y el otro /public_html/templates/default

estas son las capturas de pantalla:

/public_html/


/public_html/templates/default


Y este es el código que hay dentro de cada una:

/public_html/



/public_html/templates/default



Y esta es la url de mi faucet: [URL="http://www.btc-faucet.ml"]Aquí[/URL]

_________

Disculpa si te incomodo la verdad, pero como puedes ver en mi faucet el Balance que tengo es de 200 satoshis, de los que tenía 4 millones, en unas cuantas horas esos países se llevaron literalmente todo.
  #4 (permalink)  
Antiguo 03/08/2015, 04:17
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 11 años, 4 meses
Puntos: 401
Respuesta: Bloquear visitas de países con geoplugin

Tienes acceso al servidor/hosting vía ssh?
Te lo pregunto porque hay soluciones mejoradas, pero son a nivel de server.

De todas formas.. sobre lo que te puso @0fran... creo que te lo dejo muy claro. Crea los archivos tal como el te dijo y en cada pagina ...de acceso, que te interese, etc..... colocas.
Código PHP:
Ver original
  1. <?php include("geoip.php"); ?>
No tiene más misterio.
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #5 (permalink)  
Antiguo 03/08/2015, 19:10
 
Fecha de Ingreso: agosto-2015
Mensajes: 7
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Bloquear visitas de países con geoplugin

Cita:
Iniciado por lauser Ver Mensaje
Tienes acceso al servidor/hosting vía ssh?
Te lo pregunto porque hay soluciones mejoradas, pero son a nivel de server.

De todas formas.. sobre lo que te puso @0fran... creo que te lo dejo muy claro. Crea los archivos tal como el te dijo y en cada pagina ...de acceso, que te interese, etc..... colocas.
Código PHP:
Ver original
  1. <?php include("geoip.php"); ?>
No tiene más misterio.
vale brother, pero estuve intentando meter el código <?php include("geoip.php"); ?> en los dos index.php pero cada vez que lo coloco mi pagina se queda en blanco, específicamente en que parte debería ir?, ¿head?, soy algo tonto u.u
  #6 (permalink)  
Antiguo 03/08/2015, 19:29
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 11 años, 2 meses
Puntos: 145
Respuesta: Bloquear visitas de países con geoplugin

Cita:
Iniciado por iDerek Ver Mensaje
vale brother, pero estuve intentando meter el código <?php include("geoip.php"); ?> en los dos index.php pero cada vez que lo coloco mi pagina se queda en blanco, específicamente en que parte debería ir?, ¿head?, soy algo tonto u.u
Si queda en blanco es porque algún código erróneo está bloqueando el renderizado del DOM.

¿Tienes activados los errores de PHP?
__________________
¿Te sirvió la respuesta? Deja un +1
  #7 (permalink)  
Antiguo 03/08/2015, 19:36
 
Fecha de Ingreso: agosto-2015
Mensajes: 7
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Bloquear visitas de países con geoplugin

Cita:
Iniciado por NueveReinas Ver Mensaje
Si queda en blanco es porque algún código erróneo está bloqueando el renderizado del DOM.

¿Tienes activados los errores de PHP?
Es que tal ves lo estoy colocando mal, no sé dónde ponerlo. ¿Podrías ayudarme?
  #8 (permalink)  
Antiguo 03/08/2015, 21:01
 
Fecha de Ingreso: mayo-2015
Ubicación: Localhost
Mensajes: 13
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Bloquear visitas de países con geoplugin

Cita:
Iniciado por iDerek Ver Mensaje
Es que tal ves lo estoy colocando mal, no sé dónde ponerlo. ¿Podrías ayudarme?
Colócalo aquí al principio de todo
  #9 (permalink)  
Antiguo 06/08/2015, 14:08
 
Fecha de Ingreso: agosto-2015
Mensajes: 7
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Bloquear visitas de países con geoplugin

Cita:
Iniciado por 0fran Ver Mensaje
Colócalo aquí ...
Lo coloqué encima de todo cómo dijiste amigo, pero la pagina me aparece en blanco y en el error_log me sale esto.



puse los dos archivos que me indicaron arriba pero aún así me sigue saliendo este error.
  #10 (permalink)  
Antiguo 06/08/2015, 16:29
 
Fecha de Ingreso: mayo-2015
Ubicación: Localhost
Mensajes: 13
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Bloquear visitas de países con geoplugin

El "geoplugin.class.php" tiene que estar en la misma carpeta que "Geoip.php"
  #11 (permalink)  
Antiguo 07/08/2015, 00:14
 
Fecha de Ingreso: agosto-2015
Mensajes: 7
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Bloquear visitas de países con geoplugin

Cita:
Iniciado por 0fran Ver Mensaje
El "geoplugin.class.php" tiene que estar en la misma carpeta que "Geoip.php"
ambas están juntas en index_html pero aún así sigue saliendo el error
  #12 (permalink)  
Antiguo 11/08/2015, 21:15
 
Fecha de Ingreso: agosto-2015
Mensajes: 7
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Bloquear visitas de países con geoplugin

Aparentemente soy demasiado tonto jajaja, fue error mio al colocar geoplugin.class.php con mayuscula "G", u.u Gracias amigos les agradezco que me hayan aguantado.

Etiquetas: bloquear, países
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:32.