CGI - Asignar Valor

 
Vista:

Asignar Valor

Publicado por Carlos (2 intervenciones) el 19/03/2002 12:02:28
Tengo una página donde guardo los registros de los IP de las personas que se conectan.
El problema es que cada IP lo quero asociar a un nombre, por ejemplo el Ip: 146.80.235.33 es de la persona que se llama Juan, como puedo hacerlo para que en vez de grabarme los datos con el IP los guarde con el nombre.

La idea es poner: require 'datos.pl'; y tener todo en otro archivo.

Muchas gracias

Carlos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Asociar nombres a direcciones IP y guardar en un archivo externo

Publicado por Alejandro (140 intervenciones) el 23/08/2023 17:49:03
Si deseas asociar nombres a direcciones IP y guardar estos datos en un archivo externo para luego acceder a ellos en tu página web CGI, puedes utilizar un enfoque en el que tengas un archivo de datos separado que mapee las direcciones IP a los nombres. Aquí te proporciono un ejemplo de cómo podrías hacerlo:

1. Creación del archivo de datos (datos.pl):

Crea un archivo llamado `datos.pl` que contenga un hash en el que las claves sean las direcciones IP y los valores sean los nombres asociados.

1
2
3
4
5
%ip_to_name = (
    '146.80.235.33' => 'Juan',
    '192.168.1.1' => 'María',
    # Agrega más entradas aquí
);

Agrega más entradas al hash según tus necesidades.

2. Script CGI en Perl:

Crea un script CGI en Perl que use el archivo `datos.pl` para asociar nombres a direcciones IP y guardar los registros en un archivo externo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl
 
use strict;
use warnings;
use CGI;
 
my $cgi = CGI->new;
 
my $ip = $ENV{'REMOTE_ADDR'};
my $nombre = $ip_to_name{$ip} || 'Desconocido';
 
my $registro = "$nombre\t$ip\t" . localtime() . "\n";
 
# Agrega el registro al archivo de registros
open my $registro_fh, '>>', 'registros.txt' or die "No se pudo abrir el archivo: $!";
print $registro_fh $registro;
close $registro_fh;
 
print $cgi->header('text/html');
print "<html><body>Registro guardado correctamente.</body></html>";

En este script, se obtiene la dirección IP del cliente y se busca su nombre en el hash definido en `datos.pl`. Luego, se crea un registro que contiene el nombre, la dirección IP y la marca de tiempo, y se agrega al archivo `registros.txt`.

3. Archivo de registros (registros.txt):

Crea un archivo llamado `registros.txt` donde se guardarán los registros de las conexiones con los nombres y las direcciones IP asociados.

4. Permisos de archivos:

Asegúrate de que los archivos `datos.pl` y `registros.txt` tengan los permisos adecuados para que el script CGI pueda acceder y escribir en ellos.

5. Uso en tu página web:

En tus páginas web, puedes usar `require 'datos.pl';` para cargar el archivo de datos y acceder al hash `%ip_to_name` para mostrar los nombres asociados a las direcciones IP.

Ten en cuenta que este es un ejemplo básico y que podrías mejorar la seguridad y la eficiencia utilizando un sistema de base de datos en lugar de archivos planos, especialmente si esperas tener un gran número de registros. Además, es importante mantener la seguridad de los datos personales y cumplir con las regulaciones de privacidad al manejar la información de los usuarios.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar