Foros del Web » Programando para Internet » PHP »

IP to Country

Estas en el tema de IP to Country en el foro de PHP en Foros del Web. Hola amigos, como andan??? yo peleandome en una lucha desigual con PHP Les cuento, la gente de inflatabledepot me estan pidiendo una actualización de su ...
  #1 (permalink)  
Antiguo 12/07/2008, 08:08
Avatar de DragonX
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Funkyland
Mensajes: 8.433
Antigüedad: 22 años, 5 meses
Puntos: 177
IP to Country

Hola amigos, como andan??? yo peleandome en una lucha desigual con PHP

Les cuento, la gente de inflatabledepot me estan pidiendo una actualización de su sitio, una promo nueva para la sección "specials".....hasta ahi todo bien....

Ahora, ellos tienen un redireccionador por IP y quieren que la gente que accede de argentina entre directamente a la sección "specials", aca esta el problema!!!! sinceramente no doy pie con bola......

le dejo la funcio IP:

Código PHP:
/* ----------------- Nueva seccion de region geografia por ip ----------------------- */


function iptocountry($ip)
{
    
$numbers preg_split"/\./"$ip);
    include(
"country/ip_files/".$numbers[0].".php");
    
$code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]);
    foreach(
$ranges as $key => $value){
        if(
$key<=$code){
            if(
$ranges[$key][0]>=$code){$two_letter_country_code=$ranges[$key][1];break;}
            }
    }
    if (
$two_letter_country_code==""){$two_letter_country_code="unkown";}
    return 
$two_letter_country_code;
}

$geo_language=$_SERVER["HTTP_ACCEPT_LANGUAGE"];
$geo_ipaddress=$_SERVER['REMOTE_ADDR'];

$geo_two_letter_country_code=iptocountry($geo_ipaddress);

//gtinello
if( ($geo_two_letter_country_code=="AR") && $_GET['lang']=="" ){
  
header("location: index.php?sec=special&lang=_ENG");
    exit(
0);
}
//gtinello

include("country/ip_files/countries.php");
$geo_three_letter_country_code=$countries[$geo_two_letter_country_code][0];
$geo_country_name=$countries[$geo_two_letter_country_code][1];

$geo_grupo=$countries[$geo_two_letter_country_code][2];

if (
$geo_grupo ==''){  $geo_grupo='2A';}


/* -----------------------------------------------------------------------------------*/ 
lo que esta entre el comentario //gtinello es lo que toco un amigo a ver si lo podiamos hacer andar, pero nada......alguien podrá darme una manito!?

Desde ya mil gracias
DX
__________________
Desarrollos dosLotos
Calendario Maya, Meditación, Osho
  #2 (permalink)  
Antiguo 12/07/2008, 16:49
Avatar de DragonX
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Funkyland
Mensajes: 8.433
Antigüedad: 22 años, 5 meses
Puntos: 177
Respuesta: IP to Country

Se ve que es difícil de verdad.....nadie sabe como solucionar esto?

Gracias!
__________________
Desarrollos dosLotos
Calendario Maya, Meditación, Osho
  #3 (permalink)  
Antiguo 13/07/2008, 07:43
Avatar de Blunk  
Fecha de Ingreso: septiembre-2006
Mensajes: 145
Antigüedad: 18 años, 2 meses
Puntos: 4
Respuesta: IP to Country

Puedes sacar esa informacion atraves del browser.
EJ. http://techpatterns.com/downloads/ph..._detection.php
Ahi te muestra que browser usas, etc
y aparece "System Language" que dice cual es el idioma default del OS
  #4 (permalink)  
Antiguo 13/07/2008, 16:12
Avatar de DragonX
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Funkyland
Mensajes: 8.433
Antigüedad: 22 años, 5 meses
Puntos: 177
Respuesta: IP to Country

gracias, pero ese no es el problema. El problema es que lo queiro redireccionar a una url especifíca y no se como hacerlo.
__________________
Desarrollos dosLotos
Calendario Maya, Meditación, Osho
  #5 (permalink)  
Antiguo 13/07/2008, 16:29
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: IP to Country

yo sinceramente dejaría de hacer tanto lio y hacerlo mediante:


$lengua = get_env("HTTP_ACCEPT_LANGUAGE");

if ($lengua == es-ar){

header("location: argentina.php");
}
else {
header("location: otros.php");
}


Edito: Alomejor no es lo que quieres ya que esto no es por ip.
  #6 (permalink)  
Antiguo 14/07/2008, 07:29
Avatar de DragonX
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Funkyland
Mensajes: 8.433
Antigüedad: 22 años, 5 meses
Puntos: 177
Respuesta: IP to Country

Cita:
Iniciado por tld32 Ver Mensaje
yo sinceramente dejaría de hacer tanto lio y hacerlo mediante:


$lengua = get_env("HTTP_ACCEPT_LANGUAGE");

if ($lengua == es-ar){

header("location: argentina.php");
}
else {
header("location: otros.php");
}


Edito: Alomejor no es lo que quieres ya que esto no es por ip.
Sería una excelente solución, pero lamentablemente el cliente quiere por IP ya que existen contwenidos que se muestran y otros que no....
Gracias de todos modos.
__________________
Desarrollos dosLotos
Calendario Maya, Meditación, Osho
  #7 (permalink)  
Antiguo 14/07/2008, 07:41
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: IP to Country

Mira a ver si este te funciona.

Código PHP:
<?
$IPaddress
=$_SERVER['REMOTE_ADDR']; 
$two_letter_country_code=iptocountry($IPaddress);

if (
$two_letter_country_code=="AR"){
    print 
"Eres de Argentina";//puedes usar aqui el redireccionamiento por header
    
}else{
    print 
"No eres de Argentina";//puedes usar aqui el redireccionamiento por header
    
}

function 
iptocountry($ip) {    
    
$numbers preg_split"/\./"$ip);    
    include(
"ip_files/".$numbers[0].".php");
    
$code=($numbers[0] * 16777216) + ($numbers[1] * 65536) + ($numbers[2] * 256) + ($numbers[3]);    
    foreach(
$ranges as $key => $value){
        if(
$key<=$code){
            if(
$ranges[$key][0]>=$code){$two_letter_country_code=$ranges[$key][1];break;}
            }
    }
    if (
$two_letter_country_code==""){$two_letter_country_code="unkown";}
    return 
$two_letter_country_code;
}
?>
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 14:04.