Mapeo (Redirección) de puertos TCP y UDP

Un dia, lo necesité, busqué por internet algún programita pequeño y simple que, mapeara el trafico SNMP (UDP), para que un equipo con acceso de lectura de datos SNMP se convirtiera en el a los ojos de cualquier consulta SNMP, no encontré nada, pero no le veía mayor problema, recordaba que en las librerías de Indy existía el componente "IdMappedPortUDP" que hacía exactamente eso, claro que nunca lo había probado; Así que abrí mi Delphi y me puse a realizar la aplicación con toda prisa. Durante 40 minutos intenté con mi versión de las librerías Indy, cambiando la versión, total volverme loco para nada, pues resulta que el componente en cuestión, el " IdMappedPortUDP ", tiene un error que arrastra incluso en la última versión (ahora 10) un error que es facil de detectar: no funciona, así que desistí por esta banda...
No obstante, al día siguiente, ya cuestión por de cojo.. después de haber quedado mal, realicé la aplicación sin servirme del componente en cuestión Servidor UDP + Cliente UDP = Mapeo de puertos UDP. Aquí os dejo con una captura del programita, funciona tanto como en TCP, como en UDP, podemos configurar la IP y Puerto remoto así como el puerto de escucha local y abrir más de una instancia si fuera necesario mapear más de un puerto:



Pulsa aquí para descargar el código fuente (Durante el día de hoy ha habido demasiadas descargas del programa y ni un solo comentario, si quieres el código fuente pídelo y te lo proporcionaré encantado).
Seguro que a muchos les sacará de un apuro :)
Read More!

Como hacer que tu viejo móvil tenga cobertura de nuevo

Hace mucho tiempo, tuve un Sony Ericsson medio estropeado que no recibía prácticamente nada de cobertura y decidí poner solución :P :

1-Desmontar la parte trasera y localizar donde está conectada la mini antena que trae dentro, arrancarla (con rabia por su alevosía cortando llamadas) y soldar una mucho más mejor, moderna y... y... bueno y...!:



2-Fijar la soldadura con silicona térmica (madre mía, que haría yo sin la silicona térmica... ¡la silicona térmica si que lo aguanta todo!):



3-Disfrutar de tu "nuevo" móvil-tuning, el que más cobertura tiene del mercado, el más llamativo y molón, el móvil que nunca te atreverás a sacar a la calle (o sí, pero no lo hagas un día de tormenta intentando enfocar al cielo a ver si da más cobertura):



Toma ya; Ahora, cuando veáis que no tenéis cobertura, os acordareis de mí, sí, de mí, y es que en realidad, no tenéis porque mi teléfono la coge toda para el MUAHAHAHA, me rio yo del iPhone con mi maravilla de Sony Ericsson Tuneado.
Read More!

Javascript FadeIn FadeOut de Transparencias

Hace algún tiempo realicé un script (en javascript y PHP) que a día de hoy sigue siendo tremendamente difícil crear puesto que cada navegador utiliza una invención diferente para las transparencias pero tras una exhaustiva depuración conseguí que funcionase en IE, Firefox, Opera, Konqueror, Safari, Netscape... en fin; En todos, puesto que no he encontrado ningún navegador actual para PC en el que no funcione.
Se trata de un efecto Fade IN, Fade OUT que hace que un elemento sea parcialmente (o completamente) transparente y que deje de serlo progresivamente cuando pasamos el ratón por encima y vuelva a su estado inicial cuando sacamos el ratón. Se puede aplicar tanto en imágenes como en tablas y capas y aporta un efecto realmente profesional además de un acabado magnífico puesto que el desarrollo es impecable.

Pulsando aquí (se abrirá en una nueva ventana) podeis ver algunos ejemplos del script en funcionamiento. En ellos, explico que no es solo un script 100% compatible, sino que además es configurable tanto los máximos y mínimos de transparencia como la velocidad a la que deseais que llegué a los limites de alpha asignado.
Para integrarlo, necesitas un servidor con PHP; Sí, PHP, es un javascript que detecta la versión del navegador mediante PHP; Decidí hacerlo así por cuestión de velocidad; De todos modos, para cualquier programador ASP no será difícil de adaptar y si deseas que funcione 100% en javascript tampoco es demasiado complicado buscando ejemplos de como identificar el navegador remoto en JS, pero, mi ejemplo, es PHP + Javascrip que, a mi parecer, es la opción más eficiente:
Su integración es simple, en una página HTML, depués del tag <head> tendréis que incluir "<script language="javascript" src="js/alphafade.php">" donde alphafade.php tiene que estar accesible (podéis cambiar la ruta y dejar el archivo alphafade en cualquier otro directorio) y, el script de alphafade lo podéis descargar con el ejemplo anteriormente mostrado desde este vínculo (Está comprimido en zip y el script alphafade.php está dentro de la carpeta /js/).
Si queréis dar a un objeto la "magia" del fade una vez incluido el script en el head, únicamente tenéis que asignarle las propiedades: "name="Ejemplo"" e "id="Ejemplo"" (recordar que han de ser únicos en toda la página, es decir, no más de un objeto con el mismo nombre ni id pero para cada objeto la id y el nombre han de ser exactamente igual) así como el siguiente estilo: "style="opacity:.20; filter:alpha(opacity=20); -moz-opacity:0.20; -khtml-opacity:0.20;"" donde todos los números "20" son la opacidad inicial para los distintos navegadores (si queréis que vuelva al mismo estado recordar de coincidirla con el máximo de FadeOut) y los eventos: "onmouseover="javascript:FadeIn(this,'100','1');"" y "onmouseout="javascript:FadeOut(this,'20','1');"" Fijaos bien en estos eventos; En FadeIn (OnMouseOver), el primer número, define que nivel de opacidad se le retornará al objeto (100%) cuando el ratón no esté encima suyo y a qué velocidad lo hará, en este caso: "1" (contra mayor sea el número más rápido se llegará a la opacidad asignada); Y, en el FadeOut (OnMouseOut) definimos la transparencia máxima que adquirirá el objeto mientras el ratón se encuentre encima del item así como la velocidad a la que se llegará a este nivel de alpha.

Un ejemplo de implementación completo en una imagen quedaría tal que así: "<img id="Imagen1" name="Imagen1" onmouseout="javascript:FadeOut(this,'40','4');" onmouseover="javascript:FadeIn(this,'100','4');" src="http://www.blogger.com/img/tortuga.gif" style="-khtml-opacity: 0.40; -moz-opacity: 0.40; filter: alpha(opacity=40); opacity: .45;" />". Fácil y bonito ¿eh?

Un sencillo efecto que mejorará la apariencia siendo el único (o eso creo, ya que lo programé por que no encontré ningún otro en la red) que es 100% compatible con todos los navegadores actuales. Así como hay que decir que es muy "liviano" pesando menos de 4 KB (ya que el JS no se envía entero, solo partes según el navegador) y no sobrecargando la CPU del navegante siempre y cuando no se abuse del efecto.
Read More!

Div Absoluto pero Relativo y Flotante; ¿Es posible?

¿Es posible crear un <div> de posición absoluta dentro de una tabla u otro div algo así como un "div absoluto pero relativo"?; Por ejemplo, muchas veces surge un reto difícil para todo diseñador web en el que necesita div's con información, imágenes u otro contenido los cuales queremos que tengan una posición absoluta respecto al punto donde ha sido diseñado, pero, una posición relativa para el resto de la página que está incluida por medio de un leguaje de servidor; Por ejemplo: Queremos tener un formulario dentro de una tabla que contenga una ventana de carga en la posición -100, -100, respecto a la tabla de login; así, creamos un div, dentro de ella con posición absoluta pero... ¡Sorpresa! Queda en posición absoluta respecto a la página viéndose cortado pues la posición es -100 -100; Algo así:



Otra posible aplicación sería la siguiente: Si tienes una imagen dentro de una tabla, por ejemplo, una camiseta sin dibujo; Y quieres insertar en el centro de la camiseta un DIV con otra imagen que quede por encima de la camiseta pero que cambie como cambie la web siempre esté la imagen situada dentro de la camiseta para poder cargar dinámicamente imágenes sobre la camiseta base, tendrías que insertar el div en cuestión a la posición exacta desde el punto donde sitúas el código del div con la posicionamiento absoluto, pero, tampoco quedaría bien, se vería en esa posición respecto a toda la página en si aún estando dentro de otro div o de una tabla.

¿Por que pasa esto? En Firefox es más facil de solucionar (Dado que no interpreta bien el código pues está bien que esto pase, no es un error, es así), pero en internet explorer se vuelve extremadamente complicado si no tienes claro los conceptos sobre los que estás trabajando:
Una posición absoluta en un DIV siempre será absoluta respecto al BODY a no ser, que en el camino entre el código del div y el body se encuentre un elemento de tipo bloque y ni las tablas ni los div son de tipo "block".

Para solucionarlo, es tan simple, como dar al objeto contenedor del div, al que queremos que marque la posición inicial, en el ejemplo de la imagen la tabla de formulario y en el de las camisetas el "div" o la "tabla" que contiene el dibujo de la camiseta en blanco (y el div del dibujo claro está), la propiedad block, lo cual se hace asignando un style tal que así: "<>...
" o bien "
".

Un sencilla solución para algo tremendamente útil y que estoy seguro ha causado más de un dolor de cabeza en muchas oficinas así como es interesante tener claro el concepto de el tipo de display de cada objeto html.

Read More!

Windows y... Como dejar de compartir REAL y PERMANENTEMENTE todas tus unidades en oculto

La mayor parte de la usuarios de windows no están enterados de esta "gran ventaja" que nos ofrecen tanto XP como Vista por defecto, y que nos impone aunque lo desconfiguremos: Todos nuestros discos duros son accesibles a través de la red si no ponemos remedio, sí, ¡todos tus discos duros están siendo compartidos!.
El problema no es mayor si tienes un firewall, un router con los puertos del compartir carpetas cerrado, pero si como yo, te llevas el portátil a la oficina y has de estar en una red local donde hay conectadas multitud de personas con un aburrido día de trabajo por delante y un pc conectado a la misma red sin nada mejor que hacer que buscar carpetas compartidas en la LAN; convendría que tomaras precauciones antes de que todos vean las últimas fotos que te envió tu novia.

Para acceder al compartir oculto has de tener el nombre de usuario y clave de Windows, lo cual, no parece muy problemático de conseguir, pues todos hemos ido a casa de un amigo y este nos ha dicho la contraseña para desbloquear el PC o por temas de trabajo te han tenído que dar su usuario de windows, así que, ahora, una vez tienes el usuario y contraseña, si no hay nada que se interponga en la conexión, probablemente, puedas acceder sin problemas a todos los ficheros de ese PC sin la más minima sospecha por parte de la persona que está en el.

Para hacerlo, no tenemos más que poner en una ventana de explorer "\\NombreDelPCoIP", aquí, si el camino está abierto, nos solicitará login, ¿lo sabemos? pues ya está... Una vez lo hemos hecho, si el PC "no comparte nada" no veremos más que las tareas programadas, pero... ¡epa! ahora que estás identificado por que no vas a: "\\NombreDelPc\c$". Sí, así es, toda la unidad "C" del otro PC ahí, sin más complicación, sin nada que te prohíba descargar, modificar o eliminar ficheros; y la c, se puede cambiar por cualquier otra letra de unidad siempre con un $ detrás para acceder al recurso oculto.

Si queréis probarlo en con vuestro propio PC acceder a "\\127.0.0.1" (que es la IP local) y después a "\\127.0.0.1\c$" donde encontrareis acceso a toda vuestra unidad "c:\" algo así:



¿Por qué pasa esto? No sé porque se decidió hacer así, pero el caso es que tu PC, cuando encuentra una nueva unidad, la comparte en modo oculto, es decir, no se vé, pero está, y poniendo un dólar ("$") detrás de la letra accediendo a carpetas compartidas ya podrás ver todo su contenido.
Lo más gracioso de todo esto, no es que las comparta por default, si no, que al ir a: "[Botón derecho] sobre Mi PC > Administración > Carpetas compartidas > Recursos compartidos", podemos ver que nuestros discos duros están compartidos como recursos ocultos, incluso, podemos dejarlos de compartir, pero... ¡Cuando reiniciemos el PC, volverán a estar ahí!, es decir, ¡no se puede desactivar, por que a cada reinicio se volverá a compartir!

Pero para esto existe un sencillo y mágico truco que funciona a la perfección, tenéis que dejar de compartirlos todos en la ventana que antes he indicado, y, una vez no quede nada más que el recurso compartido "IPC$" y los que vosotros queráis compartir deberéis ir a: "Inicio > Ejecutar > (Aquí teclear) Regedit > Aceptar", se abrirá el editor de registro y aquí tenéis que explorar las carpetas hasta encontrar: "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ lanmanserver \ parameters" y en caso de que no exista la entrada "AutoShareWks" pulsáis (mientras tenéis resaltada la carpeta "parameters" claro) en el menú superior: "Edición > Nuevo > Valor DWord" lo llamáis " AutoShareWks", y que sea hexadecimal y valga "0"; Una vez añadido, realizais la misma operación pero con un nuevo valor llamado "AutoShareServer" de mismo valor en la misma carpeta.
Una vez creado, podéis reiniciar y estar tranquilos, ninguna de vuestras unidades se volverá a autocompartir sin vuestro consentimiento.
Hay que decir que esto es extremadamente alarmante cuando por un motivo u otro has de dar tu un usuario del PC para compartir carpetas, claro que, tu solo tenías la intención de compartir las carpetas seleccionadas, pero así de generoso es Windows, el, las comparte todas.
Vale, vale, ya sé que para muchos que existe el compartir oculto no es nada nuevo, pero, la solución, no está demasiado extendida así que espero poder aportar un pequeño empujón a alguien para mejorar la seguridad de su PC.
Read More!