Veamos como obtener los geodatos de los visitantes de nuestra web y como mediante una función estos se envian a nuestra dirección @.
Creo que no haría falta ni decir que hemos de descargar la clase geoplugin.class.php, gratuita, desde la web; he implementarla en nuestro servidor, local o remoto.
En otro post explico como configurar WampServer para el envio automático de mail en función mediante SendMail, os dejo el enlace xsi:
http://programasgratisytutoriales.blogspot.com/2017/03/wampserver-configurar-sendmail-php-mail.html
<?php
mens();
geo_1();
geo();
/////////////////////////////////////////////////////////////////////////////////////////////////
/*
En esta función vemos como podemos, utilizando la clase geoplugin.class.php, geolocalizar a los visitantes de nuestra web y enviar por mail los datos de nuestro servidor y visitantes, ya geolocalizados.
Las funciones están comprobadas y funcionando.
*/
function mens(){
require_once('geoplugin_class/geoplugin.class.php');
$geoplugin = new geoPlugin();
$geoplugin->locate();
$text_body = " <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<meta http-equiv='content-type' content='text/html' charset='utf-8' />
<meta http-equiv='Content-Language' content='es-es'>
<META NAME='Language' CONTENT='Spanish'>
</head>
<body bgcolor='#D7F0E7'>
<STYLE>
body {
font-family: 'Times New Roman', Times, serif;
}
body a {
text-decoration:none;
}
table a {
color: #666666;
text-decoration: none;
font-family: 'Times New Roman', Times, serif;
}
table a:hover {
color: #FF9900;
text-decoration: none;
}
tr {
margin: 0px;
padding: 0px;
}
td {
margin: 0px;
padding: 6px;
}
th {
padding: 6px;
margin: 0px;
text-align: center;
color: #666666;
}
</STYLE>
<table font-family='Times New Roman' width='90%' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr>
<th colspan='3'>NOTIFICACIÓN DE ...</th>
</tr>
<tr>
<th colspan='3'>MENSAJE AUTOMÁTICO</th>
</tr>
<tr>
<td align='right'>ASUNTO:</td>
<td width='12'> </td>
<td align='left'>
SE HA ..... WEB ....
</td>
</tr>
<tr>
<td align='right'>FECHA:</td>
<td> </td>
<td align='left'>".date('d-m-Y/H:i:s')."</td>
</tr>
<tr>
<td align='right'>URL:</td>
<td> </td>
<td align='left'>".$_SERVER['HTTP_HOST']."/".$_SERVER['PHP_SELF']."</td>
</tr>
<tr>
<td align='right'>SERVER NAME:</td>
<td> </td>
<td align='left'>".$_SERVER['SERVER_NAME']."</td>
</tr>
<tr>
<td align='right'>SERVER IP:</td>
<td> </td>
<td align='left'>".$_SERVER['SERVER_ADDR']."</td>
</tr>
<tr>
<td align='right'>SERVER ADMIN:</td>
<td> </td>
<td align='left'>".$_SERVER['SERVER_ADMIN']."</td>
</tr>
<tr>
<td align='right'>IP ACCESS:</td>
<td> </td>
<td align='left'>".$_SERVER['REMOTE_ADDR']."</td>
</tr>
<tr>
<td align='right'>GEOLOCATION FOR:</td>
<td> </td>
<td align='left'>{$geoplugin->ip}</td>
</tr>
<tr>
<td align='right'>LONGITUD:</td>
<td> </td>
<td align='left'>{$geoplugin->longitude}</td>
</tr>
<tr>
<td align='right'>LATITUD:</td>
<td> </td>
<td align='left'>{$geoplugin->latitude}</td>
</tr>
<tr>
<td align='right'>COUNTRY NAME</td>
<td> </td>
<td align='left'>{$geoplugin->countryName}</td>
</tr>
<tr>
<td align='right'>COUNTY CODE:</td>
<td> </td>
<td align='left'>{$geoplugin->countryCode}</td>
</tr>
<tr>
<td align='right'>REGION:</td>
<td> </td>
<td align='left'>{$geoplugin->region}</td>
</tr>
<tr>
<td align='right'>CITY:</td>
<td> </td>
<td align='left'>{$geoplugin->city}</td>
</tr>
<tr>
<td align='right'>AREA CODE:</td>
<td> </td>
<td align='left'>{$geoplugin->areaCode}</td>
</tr>
<tr>
<td align='right'>DMA CODE:</td>
<td> </td>
<td align='left'>{$geoplugin->dmaCode}</td>
</tr>
</table>
</body>
</html>";
$headers = array ('From' => "juanbarrospazos@hotmail.es",
'Subject' => "NOTIFICACION DE....");
$destinatario= "juanbarrospazos@hotmail.es";
$titulo= "NOTIFICACION DE....";
$responder= "juanbarrospazos@hotmail.es";
$remite= "juanbarrospazos@hotmail.es";
$remitente= "MENSAJE GENERADO AUTOMATICAMENTE";
$separador = "_separador".md5 (uniqid (rand()));
$cabecera = "Date: ".date('l j F Y, G:i')."\n";
$cabecera .="MIME-Version: 1.0\n";
$cabecera .="From: ".$remitente."<".$remite.">\n";
$cabecera .="Return-path: ". $remite."\n";
$cabecera .= "Reply-To: ".$remite."\n";
$cabecera .="X-Mailer: PHP/". phpversion()."\n";
$cabecera .= "Content-Type: multipart/mixed;"."\n";
$cabecera .= " boundary=$separador"."\r\n\r\n"; /**/
$texto_html ="\n"."--$separador"."\n"; /**/
$texto_html .="Content-Type:text/html; charset=\'utf-8\'"."\n";
$texto_html .="Content-Transfer-Encoding: 7bit"."\r\n\r\n";
$texto_html .= $text_body;
$mensaje= $texto_html;
if( mail($destinatario, $titulo, $mensaje, $cabecera)){print("* MAIL ENVIADO OK");
}else{print("* MAIL NO ENVIADO");}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
/*
Esta función vemos el funcionamiento básico de la clase geoplugin.class.php.
*/
function geo_1(){
require_once('geoplugin_class/geoplugin.class.php');
$geoplugin = new geoPlugin();
// If we wanted to change the base currency, we would uncomment the following line
// $geoplugin->currency = 'EUR';
$geoplugin->locate();
echo "<br/><br/>
Geolocation results for {$geoplugin->ip}: <br />\n".
"City: {$geoplugin->city} <br />\n".
"Region: {$geoplugin->region} <br />\n".
"Area Code: {$geoplugin->areaCode} <br />\n".
"DMA Code: {$geoplugin->dmaCode} <br />\n".
"Country Name: {$geoplugin->countryName} <br />\n".
"Country Code: {$geoplugin->countryCode} <br />\n".
"Longitude: {$geoplugin->longitude} <br />\n".
"Latitude: {$geoplugin->latitude} <br />\n".
"Currency Code: {$geoplugin->currencyCode} <br />\n".
"Currency Symbol: {$geoplugin->currencySymbol} <br />\n".
"Exchange Rate: {$geoplugin->currencyConverter} <br />\n";
/*if ( $geoplugin->currency != $geoplugin->currencyCode ) {
//our visitor is not using the same currency as the base currency
echo "<p>At todays rate, US$100 will cost you " . $geoplugin->convert(100) ." </p>\n";
}*/
/* find places nearby
$nearby = $geoplugin->nearby();
if ( isset($nearby[0]['geoplugin_place']) ) {
echo "<pre><p>Some places you may wish to visit near " . $geoplugin->city . ": </p>\n";
foreach ( $nearby as $key => $array ) {
echo ($key + 1) .":<br />";
echo "\t Place: " . $array['geoplugin_place'] . "<br />";
echo "\t Country Code: " . $array['geoplugin_countryCode'] . "<br />";
echo "\t Region: " . $array['geoplugin_region'] . "<br />";
echo "\t County: " . $array['geoplugin_county'] . "<br />";
echo "\t Latitude: " . $array['geoplugin_latitude'] . "<br />";
echo "\t Longitude: " . $array['geoplugin_longitude'] . "<br />";
echo "\t Distance (miles): " . $array['geoplugin_distanceMiles'] . "<br />";
echo "\t Distance (km): " . $array['geoplugin_distanceKilometers'] . "<br />";
}
echo "</pre>\n";
}*/
}
/////////////////////////////////////////////////////////////////////////////////////////////////
/*
En esta función, igual que en otro post, vemos como nos imprime los datos de nuestro servidor.
*/
function geo(){
print(" <div align='center' style='text-align:left;margin-left:auto;margin-right:auto;width:350px' >
<br/>URL: ".$_SERVER['HTTP_HOST']."/".$_SERVER['PHP_SELF']."
<br/>SERVER NAME: ".$_SERVER['SERVER_NAME']."
<br/>SERVER IP: ".$_SERVER['SERVER_ADDR']."
<br/>SERVER ADMIN: ".$_SERVER['SERVER_ADMIN']."
<!-- // IP Acceso -->
<br/>IP Access: " . $_SERVER['REMOTE_ADDR'] ."
<!-- // IP compartido -->
<br/>IP Share: " . $_SERVER['HTTP_CLIENT_IP'] ."
<!-- // IP Proxy -->
<br/>IP Proxy: " . $_SERVER['HTTP_X_FORWARDED_FOR'] ."
</div>
");
$indicesServer = array('PHP_SELF',
'argv',
'argc',
'GATEWAY_INTERFACE',
'SERVER_ADDR',
'SERVER_NAME',
'SERVER_SOFTWARE',
'SERVER_PROTOCOL',
'REQUEST_METHOD',
'REQUEST_TIME',
'REQUEST_TIME_FLOAT',
'QUERY_STRING',
'DOCUMENT_ROOT',
'HTTP_ACCEPT',
'HTTP_ACCEPT_CHARSET',
'HTTP_ACCEPT_ENCODING',
'HTTP_ACCEPT_LANGUAGE',
'HTTP_CONNECTION',
'HTTP_HOST',
'HTTP_REFERER',
'HTTP_USER_AGENT',
'HTTPS',
'REMOTE_ADDR',
'REMOTE_HOST',
'REMOTE_PORT',
'REMOTE_USER',
'REDIRECT_REMOTE_USER',
'SCRIPT_FILENAME',
'SERVER_ADMIN',
'SERVER_PORT',
'SERVER_SIGNATURE',
'PATH_TRANSLATED',
'SCRIPT_NAME',
'REQUEST_URI',
'PHP_AUTH_DIGEST',
'PHP_AUTH_USER',
'PHP_AUTH_PW',
'AUTH_TYPE',
'PATH_INFO',
'ORIG_PATH_INFO') ;
echo '<table align="center">' ;
foreach ($indicesServer as $arg) {
if (isset($_SERVER[$arg])) {
echo '<tr>
<td align="left">'.$arg.'</td>
<td align="left">' . $_SERVER[$arg] . '</td>
</tr>' ;
}
else {
echo '<tr>
<td align="left">'.$arg.'</td>
<td align="left">-</td>
</tr>' ;
}
}
echo '</table>' ;
}
/////////////////////////////////////////////////////////////////////////////////////////////////
?>
No hay comentarios:
Publicar un comentario
Gracias por vuestros aportes.