Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/01/2005, 18:43
JAPIQUI
 
Fecha de Ingreso: mayo-2002
Ubicación: Perú
Mensajes: 72
Antigüedad: 22 años
Puntos: 0
Ayuda Con Codigo Para Detectar Ip Y Pais

BUENO ESTE CODIGO FUNCIONA PERFECTO PERO PARA SABER DE QUE PAIS PROVIENE UNA IP.

AL CARGAR ESTA PAGINA CARGA UN FORMULARIO EL CUAL DA POR DEFECTO EL IP DE LA PERSONA QUE EJECUTO EL PHP.

A CONTINUACION SI PRESIONAMOS OK EN EL FORMULARIO ESTE NOS DA EL PAIS A DONDE PERTENECE ESTE IP CON SU BANDERA

LO QUE QUIESIERA HACER ES QUE DEFRENTE SIN NECESIDAD DE PRESIONAR EL BOTON OK DEL FORMULARIO.
CUANDO SE CARGUE LA PAGINA QUE CONTIENE ESTE SCRIPT CARGE EL IP EL PAIS Y LA BANDERA.

A CONTINUACION PONGO EL CODIGO Y ESTOY COLOCANDO EN COLOR ROJO LA PARTE CORRESPONDIENTE AL FORMULARIO




<?php

$flags="flags/"; // set a correct relative or absolute path to the flag directory
$wdth=18; // set width of a flag image
$hght=12; // set height of a flag image
$extn='png'; // set format of the flag images /case sensitive/
$dtme=1; // set whether time to be displayed (1 or 0)


error_reporting(1);function tmm(){$u=microtime();$u=explode(" ",$u);return $u[1]+$u[0];}$s=tmm();
$pv=phpversion();$pv=substr($pv,0,1).substr($pv,2, 1);if($pv>40){import_request_variables("gpc");$REM OTE_ADDR=$HTTP_SERVER_VARS['REMOTE_ADDR'];$PHP_SELF=$HTTP_SERVER_VARS['PHP_SELF'];}
?>


<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
<style type="text/css">
body{color:#222222;background-color:#eeeeee}
div{padding:2px;font-size:11px;font-family:Verdana,sans-serif}
input{font-family:Verdana,sans-serif;font-size:11px;border:1px #666666 solid}
</style></head><body onload="document.forms[0].ip.focus()">


<form action="<?php print $PHP_SELF;?>">
<input type="text" name="ip" value="<?php if(!isset($ip)||$ip==''){print $REMOTE_ADDR;}?>" />
<input type="submit" value="OK" />
</form>



<div>
<?php
if(isset($ip)&&$ip!=''){

$v=0;$f=0;$n=array();

print "IP: $ip<br />\n";
$ip=sprintf("%u",ip2long($ip));
while(strlen($ip)<10){$ip='0'.$ip;}
$h=opendir('.');
while($e=readdir($h)){
$o=(int)$e;if(strlen($o)>5){
$n[$f]=$e;$f++;}}closedir($h);
sort($n);

$o=count($n)-1;$d=$n[$o];
for($j=0;$j<$o;$j++){if($ip>=$n[$j]&&$ip<$n[$j+1]){$d=$n[$j];break;}}

$q=fopen($d,"r");
while(!feof($q)){$r=fgets($q,32);
$a=substr($r,0,9);$b=substr($r,10,19);$c=substr($r ,20);
if($ip>=$a&&$ip<=$b){$v=1;break;}}
fclose($q);

if($v==0){print "Unknown IP address<br />\n";}
else{$ty=strtolower($c);
$ty=str_replace("\n","",$ty);
switch($ty){
case'ac':$rz='Ascension Island';break;
case'ad':$rz='Andorra';break;
case'ae':$rz='United Arab Emirates';break;
case'af':$rz='Afghanistan';break;
case'ag':$rz='Antigua and Barbuda';break;
case'ai':$rz='Anguilla';break;
case'al':$rz='Albania';break;
case'am':$rz='Armenia';break;
case'an':$rz='Netherlands Antilles';break;
case'ao':$rz='Angola';break;
case'aq':$rz='Antarctica';break;
case'ar':$rz='Argentina';break;
case'as':$rz='American Samoa';break;
case'at':$rz='Austria';break;
case'au':$rz='Australia';break;
case'aw':$rz='Aruba';break;
case'az':$rz='Azerbaijan';break;
case'ba':$rz='Bosnia and Herzegowina';break;
case'bb':$rz='Barbados';break;
case'bd':$rz='Bangladesh';break;
case'be':$rz='Belgium';break;
case'bf':$rz='Burkina Faso';break;
case'bg':$rz='Bulgaria';break;
case'bh':$rz='Bahrain';break;
case'bi':$rz='Burundi';break;
case'bj':$rz='Benin';break;
case'bm':$rz='Bermuda';break;
case'bn':$rz='Brunei Darussalam';break;
case'bo':$rz='Bolivia';break;
case'br':$rz='Brazil';break;
case'bs':$rz='Bahamas';break;
case'bt':$rz='Bhutan';break;
case'bv':$rz='Bouvet Island';break;
case'bw':$rz='Botswana';break;
case'by':$rz='Belarus';break;
case'bz':$rz='Belize';break;
case'ca':$rz='Canada';break;
case'cc':$rz='Cocos (Keeling) Islands';break;
case'cd':$rz='Zaire';break;
case'cf':$rz='Central African Republic';break;
case'cg':$rz='Congo';break;
case'ch':$rz='Switzerland';break;
case'ci':$rz='Cote d\'Ivoire';break;
case'ck':$rz='Cook Islands';break;
case'cl':$rz='Chile';break;
case'cm':$rz='Cameroon';break;
case'cn':$rz='China';break;
case'co':$rz='Colombia';break;
case'cr':$rz='Costa Rica';break;
case'cs':$rz='Czechoslovakia (former)';break;
case'cu':$rz='Cuba';break;
case'cv':$rz='Cape Verde';break;
case'cx':$rz='Christmas Island';break;
case'cy':$rz='Cyprus';break;
case'cz':$rz='Czech Republic';break;
case'de':$rz='Germany';break;
case'dj':$rz='Djibouti';break;
case'dk':$rz='Denmark';break;
case'dm':$rz='Dominica';break;
case'do':$rz='Dominican Republic';break;
case'dz':$rz='Algeria';break;
case'ec':$rz='Ecuador';break;
case'fx':$rz='France, Metropolitan';break;
case'it':$rz='Italy';break;
case'om':$rz='Oman';break;
case'pa':$rz='Panama';break;
case'pe':$rz='Peru';break;
case'pf':$rz='French Polynesia';break;
case'pg':$rz='Papua New Guinea';break;
case'ph':$rz='Philippines';break;
case'pk':$rz='Pakistan';break;
case'pl':$rz='Poland';break;
case'pm':$rz='St. Pierre and Miquelon';break;
case'pn':$rz='Pitcairn';break;
case'pr':$rz='Puerto Rico';break;
case'pt':$rz='Portugal';break;
case'ru':$rz='Russia';break;
case'rw':$rz='Rwanda';break;
case'sa':$rz='Saudi Arabia';break;
case'sb':$rz='Solomon Islands';break;
case'sc':$rz='Seychelles';break;
case'yu':$rz='Yugoslavia';break;
case'za':$rz='South Africa';break;
case'zm':$rz='Zambia';break;
case'zr':$rz='Zaire';break;
case'zw':$rz='Zimbabwe';break;
default:$rz='';break;
}
$img=$flags.$ty.".$extn";
if(is_file($img)){print "<img src=\"$img\" width=\"$wdth\" height=\"$hght\" alt=\"$rz\" /> ";}
print "$rz<br />\n";}

if($dtme==1){$t=tmm();$st3=substr(($t-$s),0,5);
print "<span style=\"font-size:10px;color:#888888\">$st3 sec</span>\n";}}
?></div></body></html>
__________________
......:::::: "La Calidad nunca es un accidente, es el resultado de un esfuerzo inteligente." ::::::......