Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Guardar ip y usuario en MySQL

Estas en el tema de Guardar ip y usuario en MySQL en el foro de Mysql en Foros del Web. Hola: Hice un diseño simple de guardar la fecha, hora, usuario y la ip cuando se conectan a MySQL desde internet con mi permiso. Desde ...
  #1 (permalink)  
Antiguo 08/07/2009, 08:37
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 16 años, 10 meses
Puntos: 8
Guardar ip y usuario en MySQL

Hola:

Hice un diseño simple de guardar la fecha, hora, usuario y la ip cuando se conectan a MySQL desde internet con mi permiso.

Desde C# estoy programando las órdenes y hacer lo mismo bajo PHP.

Mostrar el usuario es: SELECT USER();
La fecha es NOW();

¿La IP?

¿DE paso el puerto 3306 también se puede? Quiero ahcer un sistema de minotoreo.

Código:
--
-- Base de datos: `prueba_db`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `log_ip`
--

CREATE TABLE IF NOT EXISTS `log_ip` (
  `ID` tinyint(4) NOT NULL AUTO_INCREMENT,
  `USUARIO` varchar(50) NOT NULL,
  `IP` varchar(30) NOT NULL,
  `FECHA_HORA` datetime NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Volcar la base de datos para la tabla `log_ip`
--

INSERT INTO `log_ip` (`ID`, `USUARIO`, `IP`, `FECHA_HORA`) VALUES
(1, 'root@localhost', '127.0.0.1', '2009-07-08 15:33:40');
Saludo.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #2 (permalink)  
Antiguo 08/07/2009, 09:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Guardar ip y usuario en MySQL

Cita:
`ID` tinyint(4) NOT NULL AUTO_INCREMENT,
Esto solamente permitirá que se registren 127 usuarios.
¿Realmente vas a tener tan pocos?

La IP y el puerto son datos que debes enviar desde la máquina cliente, a menos que quieras hacer un proceso más largo para averiguarlos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 08/07/2009 a las 09:17
  #3 (permalink)  
Antiguo 08/07/2009, 09:18
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 16 años, 10 meses
Puntos: 8
Respuesta: Guardar ip y usuario en MySQL

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Esto solamente permitirá que se registren 127 usuarios.
¿Realmente vas a tener tan pocos?

La IP y el puerto son datos que debes enviar desde la máquina cliente, a menos que quieras hacer un proceso más largo para averiguarlos...
Pues no.

¿Cómo lo soluciona?
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #4 (permalink)  
Antiguo 08/07/2009, 10:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Guardar ip y usuario en MySQL

Tienes que elegir el tipo correcto de columna; ni más corto ni más largo de lo necesario.
Si los pones muy cortos, no te alcanzarán y perderás datos. Si los eliges demasiado largos, estás desperdiciando espacio de disco y recursos de web (los datos ocupan espacio en los datagramas).
Los tipos de datos los puedes ver en el manual de referencia: Capítulo 11. Tipos de columna

En este caso tienes que tener en cuenta que un ID autonumérico nunca será negativo, por lo cual la definición del campo debe llevar la cláusula UNSIGNED. Esto hace que el rango de representación se extienda hasta 255 en el TINYINT.
Los rangos numéricos son, en los UNSIGNED:
TINYINT (1 byte) 0 a 255.
SMALLINT (2 byes) 0 a 65535
MEDIUMINT (3 bytes) 0 a 16777215
INT (4 bytes) 0 a 4294967295
BIGINT (8 bytes) 0 a 18446744073709551615

En el caso del resto de los tipos de columna, mira el link que te pongo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 01/03/2011, 17:36
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Guardar ip y usuario en MySQL

pero yo me quito el sombrero , q envidia sana me daís, joiossssssssssssssss!!!! madre mía voy a probarlo yaaaaaaaaa
  #6 (permalink)  
Antiguo 01/03/2011, 18:12
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Guardar ip y usuario en MySQL

jooooo no m sale me sale a ceros, help!!!
  #7 (permalink)  
Antiguo 01/03/2011, 19:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Guardar ip y usuario en MySQL

¿Y exactamente qué estás haciendo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 02/03/2011, 19:12
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Respuesta: Guardar ip y usuario en MySQL

pues...
a ver si sé explicarlo.

creo q me casca en el mysql, ¿qué datos he de poner en los campos fecha, para q lo registre automaticamente y en Ip.?

yo tengo:

fecha- datetime /none
ip- varchar 30/ null:no/predeterminado:none

es correcto???'

Soy un patooooo, pero el q la sigue la consigue
  #9 (permalink)  
Antiguo 02/03/2011, 19:19
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Guardar ip y usuario en MySQL

http://www.sarabm.com
  #10 (permalink)  
Antiguo 02/03/2011, 19:23
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Guardar ip y usuario en MySQL

Cita:
Iniciado por saraber Ver Mensaje
http://www.sarabm.com
perdón quería mostrartelo pero si alguien acceden a la pag igual me borran datos.
  #11 (permalink)  
Antiguo 02/03/2011, 20:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Guardar ip y usuario en MySQL

Una IP se puede guardar o como VARCHAR o como INT UNSIGNED. Depende de lo que quieras.
Yo usaría un INT UNSIGNED porque usa 4 bytes, y sólo necesito las fuciones de conversión INET_ATON() y INET_ATON() para obtener el valor numerico o la IP que representa:
Código MySQL:
Ver original
  1. mysql> SELECT INET_NTOA(1212121212) IP, INET_ATON('72.63.128.124') VALOR_IP;
  2. +---------------+------------+
  3. | IP            | VALOR_IP   |
  4. +---------------+------------+
  5. | 72.63.128.124 | 1212121212 |
  6. +---------------+------------+
  7. 1 row in set (0.00 sec)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 04/03/2011, 20:19
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Guardar ip y usuario en MySQL

OKIS.

voy a probar a ver cómo va. Hoy he hecho grandes progresos. Os envidio !!!

Sara
  #13 (permalink)  
Antiguo 04/03/2011, 20:58
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Guardar ip y usuario en MySQL

Una IP se puede guardar o como VARCHAR o como INT UNSIGNED. Depende de lo que quieras guardar (Y de que depende???, por Dios q complicado!!) quiero que guarde automáticamente la Ip)

gracias tengo la L de novata, no me hables muy en chino, anda porfa!!!
  #14 (permalink)  
Antiguo 05/03/2011, 07:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Guardar ip y usuario en MySQL

Vamos por partes:
- Ser novata no implica que no puedas entender o aprender. Todos hemos sido novatos, pero cuando nos encontramos con algo que no entendemos bien lo que hacemos es leer aquellos manuales o textos que nos puedan ayudar.

- Las bases de datos, y las técnicas informáticas en general, son áreas de conocimientos técnicos. Nadie habla en chino, como dices, pero si te vas a meter en el mundo de la programación deberás acostumbrarte a usar y entender lenguaje técnico, porque eso es , y son las palabras que se usan para definir las cosas.

- Respecto a tu pregunta de que determina un tipo de dato u otro, no existe una regla general, eso es decisión tuya y no mía. Yo solamente te digo que yo usaría un INT UNSIGNED porque necesita sólo 4 bytes contra 15 (supongo que sabes qué es un byte), pero también dependería de otros factores que tienen que ver con tu implementación. En definitiva, eso es tu decisión.

- Finalmente, MySQL no tiene recursos para establecer la IP de origen real si el usuario se conecta a la base por ercursos de servidor, es decir ASP, PHP o JSP. En estos lenguajes los scripts no se ejecutan en la máquina cliente (PC del usuario), sino en el webserver (hosting de la página), por lo que la IP que MySQL puede leer termina siendo la del webserver. En esos casos la obtención de la IP del usuario se debe hacer en el script, no en MySQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 05/03/2011, 17:26
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Guardar ip y usuario en MySQL

HOLA, PERDÓN MIL VECES.
Es mi forma de expresarme... soy así. Lo he mirado hoy con más calma y ya sé chino... (bromita) he visto el Int_ ntoa (pero es de MySql esta función, no?. Y si he de hacerlo por PHP, cómo lo pondría en el código?? Creo que eso no me ha quedado claro. Sorry!!

Yo seguiré tu consejo de poner Int unsigned.

A ver cómo funciona. He de decir que yo no soy progranadora, pero es un mundo que me apasiona a veces os leo y pienso, algún día entenderé de lo que hablan.

Muchas gracias.
Sara
  #16 (permalink)  
Antiguo 05/03/2011, 17:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Guardar ip y usuario en MySQL

La función NTOA() la usas cuando debes recuperar una IP en una consulta, y quieres la IP formateada y no su equivalente numérico. A su vez la función ATON() se usa para almacenar la IP como número en el campo en el INSERT, si tienes la IP como cadena formateada.
¿se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 05/03/2011, 19:21
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Guardar ip y usuario en MySQL

si lo voy entendiendo.

grs
  #18 (permalink)  
Antiguo 05/03/2011, 19:23
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Guardar ip y usuario en MySQL

y en php, indicarías alguna función ???
  #19 (permalink)  
Antiguo 05/03/2011, 20:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Guardar ip y usuario en MySQL

Mmmm , eso es tema de otro foro. Acá el asunto es SQL y Bases de Datos.
Para los temas de programación en PHP está el Foro de PHP, donde están los expertos que te pueden ayudar, pero las normas de FDW nos exigen que tratemos los temas en sus respectivos foros.
Sí te puedo decir que hay formas de detectar en PHP la IP de origen del usuario.

Mira este post: Respuesta: Detectar ip visitante a formulario y enviarlo a un correo
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #20 (permalink)  
Antiguo 05/03/2011, 21:27
 
Fecha de Ingreso: marzo-2011
Ubicación: Madrid
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Guardar ip y usuario en MySQL



Ohhh, con lo bien que nos estabamos llevando ahora.

Bueno gracias a tí he sabido algo nuevo de MySql, me ha servido de mucho.

Slds, no me eches de menos... q en breve regreso con más dudas, ya verás!!!

bye
  #21 (permalink)  
Antiguo 11/05/2011, 10:52
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Guardar ip y usuario en MySQL

Hola como les va?

Quisas el tema es un poco viejo pero me encontre con algo extraño que me ha estado complicando

Tengo una tabla que almacena las ip y esta esta declarada como char(15) en sql server

lo raro es que algunas ip de tamaño 14 o menos inserta la ip agregando una coma al final. Digo algunas por que no pasa en todas

Alguien sabe que puede estar pasando??

Yo desde el asp solo envio la ip a un procedimiento almacenado y la inserto como char pero no se que puede ser.

Gracias por la ayuda
  #22 (permalink)  
Antiguo 13/05/2011, 08:01
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 16 años, 10 meses
Puntos: 8
Respuesta: Guardar ip y usuario en MySQL

Que no es lo mismo guardar esta IP que la otra.

127.127.127.127

127.0.0.1

Faltan números por medio.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #23 (permalink)  
Antiguo 13/05/2011, 08:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Guardar ip y usuario en MySQL

Por eso es más práctico guardarlo como INT o BIGINT y usar NTOA() para recuperar el valor en forma de cadena.
Desperdicias menos espacio, ya que para guardar una IP necesitas sí o sí VARCHAR(15), contra un número de 4 (INT) u 8 bytes (BIGINT).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #24 (permalink)  
Antiguo 13/05/2011, 09:02
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 16 años, 10 meses
Puntos: 8
Respuesta: Guardar ip y usuario en MySQL

El char solamente es un carácter de 8 bits.

Puedes guardar la IP en hexadecimal. Como vez abajo, hice un ping en la web de www.google.es.

Cita:
C:\>ping www.google.es

Haciendo ping a www.l.google.com [209.85.229.147] con 32 bytes de datos:
Respuesta desde 209.85.229.147: bytes=32 tiempo=105ms TTL=52
Respuesta desde 209.85.229.147: bytes=32 tiempo=98ms TTL=51
Respuesta desde 209.85.229.147: bytes=32 tiempo=97ms TTL=52
Respuesta desde 209.85.229.147: bytes=32 tiempo=102ms TTL=51

Estadísticas de ping para 209.85.229.147:
Paquetes: enviados = 4, recibidos = 4, perdidos = 0
(0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
Mínimo = 97ms, Máximo = 105ms, Media = 100ms
Te muestra esta IP:
209.85.229.147

Pásalo a hexadecimal que es así:
D155E593

Ahora, puedes hacer un ping otra vez pero en hexadecimal de esta manera indicada abajo. Claro que debes poner un 0x delante de la IP en hex. 0xD155E593.

Cita:
C:\>ping 0xD155E593

Haciendo ping a 209.85.229.147 con 32 bytes de datos:
Respuesta desde 209.85.229.147: bytes=32 tiempo=104ms TTL=52
Respuesta desde 209.85.229.147: bytes=32 tiempo=103ms TTL=52
Respuesta desde 209.85.229.147: bytes=32 tiempo=104ms TTL=52
Respuesta desde 209.85.229.147: bytes=32 tiempo=102ms TTL=52

Estadísticas de ping para 209.85.229.147:
Paquetes: enviados = 4, recibidos = 4, perdidos = 0
(0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
Mínimo = 102ms, Máximo = 104ms, Media = 103ms
Puedes guardarla en una tabla su IP real o en hexadecimal si lo programas para convertirlas en una o otra cuando lo quieras mostrar.
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:27.