Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Príncipe_Azul

Páginas: [1]
1
Hola amigos!!

Qué tál están?, espero que bien! :)

Les comento, necesito ayuda para terminar un simple código que hice en Javascript, voy a poner el código y luego me dirán que es lo que me falta para terminarlo:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>titulo</title>
    <script type="text/javascript">
        function SubDominios() {
            var subDominios = ["subDom1", "subDom2", "subDom3", "subDom4"];
            var totalSubDominios = subDominios.length
            var subDominio = Math.floor((Math.random() * totalSubDominios) + 0);
            url = 'https://' + subDominios[SubDominio] + '.paginaweb.com/archivo.php?action=param';
            return url;
        }
    </script>
</head>
<body>
    <form action="javascript:SubDominios();" method="post">
        <input placeholder="Escribir dato" type="text" autocomplete=off name="d" value="">
        <button type="submit">Proceder</button>
    </form>
</body>
</html>

ya se imaginarán lo que pretendo hacer ;)
Voy a explicarles, simplemente lo que deseo es llamar a una función en JS:

Código: [Seleccionar]
    <form action="javascript:SubDominios();" method="post">
y que obviamente envíe el formulario a esta url que se forma en esta línea:

Código: [Seleccionar]
            url = 'https://' + subDominios[SubDominio] + '.paginaweb.com/archivo.php?action=param';
por ejemplo debería quedar así:

Código: [Seleccionar]
    <form action="https://subDom3.paginaweb.com/archivo.php?action=param" method="post">
es decir, lo que deseo es simplemente llamar a una funcion en JS para que me retorne una url, que tendrá un sub-dominio aleatorio:

Código: [Seleccionar]
            var subDominios = ["subDom1", "subDom2", "subDom3", "subDom4"];
Aquí dejo una captura de como funciona el código que hice:



como verán si bien la aleatoriedad funciona y se forma corectamente la url, pero no funciona como debería/desearía, ya que yo deseo que esta llamada a la función de JS:

    <form action="javascript:SubDominios();" method="post">

se convierta en una url así se pueda enviar el formulario a un sub-dominio aleatorio, por ejemplo:

https://subDom4.paginaweb.com/archivo.php?action=param

pero no pasa eso... lo que sucede es que se muestra la url en el navegador y en la barra de direcciones se muestra la función en Javascript.

¿Cómo debería dejar el código funcionar?.


Muchas gracias de antemano!!

2
Cuentas de emails en imágenes v0.1


Hola a todos!!! :)

Hoy les quiero mostrar un nuevo programa que he terminado, el mismo sirve para proteger cuentas de emails, lo que hace este programa es crear imágenes con las cuentas de emails que nosotros quieramos asegurar, por ejemplo si yo tengo la cuenta:

principe_azul@hotmail.com

y quisiera que en vez de ser un simple texto, se convierta en una imagen para prevenir que bots maliciosos, programas y scripts puedan detectar mi cuenta de email y guardarla en algún archivo de texto plano o en una base de datos y usar mi cuenta para algún ataque de Spam o para querer hackearme la cuenta.

Entónces lo que hace mi programa, es convertir ese simple texto en una imagen, una vez que tengamos la imagen lista con nuestro email, podremos subirla a cualquier sitio, ya sea a nuestro hosting o a alguna web para subir imágenes/fotos/capturas.

La gran ventaja que tiene el programa es que se pueden crear tantas imágenes como uno quiera, por ejemplo si yo quiero crear 100 imágenes que equivale a 100 cuentas de emails, entónces el programa lo hará sin problema alguno en cuestión de segundos, hay que tener en cuenta que la velocidad del programa en crear las imágenes, dependerá del total de emails que le hayamos cargado, sin embargo el programa es muy rápido, en menos de un segundo te puede crear 5 imágenes con las 5 cuentas de emails.

Si bien este programa ha sido creado para cuentas de emails, también puede ser usado para crear otros tipos de textos, por ejemplo una firma para un perfil en un foro.

Voy a ir dejando las imágenes y explicando paso a paso como funciona la herramienta, ya que ahora saben que es lo que hace el programa Cuentas de emails en imagenes.

Realmente lo he creado porque he visto que muchas personas tienen muchos problemas con sus cuentas de emails debido a que hackers o personas que no son hackers pero maliciosas, buscan en foros, webs, blogs, etc, cuentas de emails en texto plano para poder hacer algún uso malicioso con esas cuentas, por ejemplo enviar un ataque de Spam o un ataque masivo de emails o un intento de robo de la cuenta, por eso es mejor siempre que la cuenta esté segura siendo una imagen, es el método que hoy en día se está usando para evitar estos problemas.

Los nombres de las imágenes de los emails, serán iguales a los emails.
El tipo de fuente usada en este programa es la Arial.

Mi Programa soporta las siguientes opciones:

Tamaño de Fuente de 13 a 25 pixeles.
Posibilidad de crear imágenes masivamente, el programa lo hará lo más rápido posible.
Indicador del total de cuentas de emails cargadas en el programa.
Indicador en tiempo real de los emails que se van creando en imágenes y el número de órden de la lista, es decir la posición/línea.
Puede borrar el listado completo con solo presionar un botón.

Colores:

Soporta colores normales escritos en inglés, por ejemplo blue, white, red, green, pink, purple, etc.
Soporta colores en hexadecimal.
Soporta colores en RGB (red, green, blue).
Paleta de colores en RGB para el texto y fondo.

Haz clic en las imágenes para ampliarlas.

Ventana principal:




Menú:




Buscar archivo con la lista de emails:




Tamaño de Fuente:




Todos los tamaños soportados:




Aviso de que el tamaño de fuente ha sido guardado y establecido:




Ventana de aviso de que la configuración ha sido guardada:



Ventana de error que informará cuando se intenten crear imágenes y no se haya escrito ningún email:




Aquí tienen el resultado de un ejemplo:











Botones:


---> Comienza la creación de las imágenes con los emails cargados en la caja de edición.

---> Abre una ventana para buscar el archivo con los emails, las extensiones permitidas son .txt y .log.

---> Simplemente borra todos los emails cargados en la caja de edición, por supuesto que este botón no borrará el archivo cargado, sino el contenido de la caja de edición en donde se escriben los emails.

---> Cierra el programa. No debes olvidarte de guardar la configuración antes de salir (si es que haz realizado algún cambio).

---> Este botón es invisible y solo aparece cuando se comienzan a crear las imágenes, es decir, cuando pulses el botón Crear imágenes!, este botón se ocultará y en su mismo lugar aparecerá el botón Detener que al presionarlo, el programa dejará de crear las imágenes de los emails.


Explicación de los controles:


Lista de emails: En esta caja de edición podrás agregar todos los emails que quieras que se conviertan en imágenes.

Imagen creada: Este visor va informando en tiempo real, todas las cuentas de emails que el programa va creando sus imágenes, el número que está en paréntesis es un indicador del número de línea del email que va creando.

Cantidad Total de Emails Cargados: Este indicador muestra la cantidad de emails que hayas cargado en la caja de edición.

O RGB        O Normal/Hexadecimal: Acá podés elegir el color Normal/Hexadecimal, los colores normales son escritos en inglés, por ejemplo: blue, white, red, green, pink, purple, etc.
Los colores Hexadecimal pueden ser por ejemplo: #3333FF, #006600, #CC33CC, #FF0000, #000000, #FFFF00, #993300, #339999, etc.
Los colores RGB tienen 3 valores, la gama es red, green y blue, si vas a usar colores en RGB, entónces lee abajo sobre la explicación de los deslizadores.


Deslizadores/Sliders:

Rojo: valor mínimo 0 - valor máximo 255
Verde: valor mínimo 0 - valor máximo 255
Azul: valor mínimo 0 - valor máximo 255

Podés elegir los valores que desees usando los sliders, el valor RGB mínimo es 0 y el máximo es 255.

Visor de colores RGB: Este panel muestra el color RGB asignado al texto o al fondo.

Caja de edición para colores Normales y Hexadecimales: En esta caja de edición que está ubicada al lado del visor de colores RGB, puedes elegir valores normales o hexadecimales, obviamente escribiendo el valor que deseas y luego guardar la configuración.

Para los colores del fondo es la misma explicación que dí arriba, solamente que será aplicada para el color de fondo.


Menú de opciones:


Guardar Configuración ---> Guarda la configuración de los valores de los colores del texto y fondo, también guarda el tamaño de fuente.

Tamaño de fuente ---> Al hacer clic aquí, se abrirá una ventana en donde podrás elegir el tamaño de fuente para las imágenes, lo permitido es un valor mínimo de 13 pixeles hasta 25.

Salir... ---> Cierra el programa.


Atajo de teclado:


Ctrl+G ---> Guarda la configuración

Ctrl+T ---> Abre una ventana para que puedas seleccionar el tamaño de fuente.

Ctrl+S ---> Cierra el programa.


Enlaces:

El programa te da la posibilidad de que puedas acceder a nuestras 2 Comunidades cuando los desees, para abrir nuestros foros, podrás hacer clic en cualquiera de los 2 nombres:



al pasar el puntero del mouse, el mismo se convertirá en una mano y se subrayara el nombre de la Comunidad, y al hacer clic en ArgentinaIRC o Mis Artesanías, se abrirá uno de nuestros foros (el que hayas elegido) con tu navegador predeterminado.
El programa pesa 15 Megabytes, lo he comprimido con Ultra Compresión y pesa 5,83 MB.

Descarga: https://mega.nz/#!el1hhZhS!rUk4s541v_b4RyyKNfESbbx83618Idc4-b_d3J2AIf4

Quiero agradecer a Sait, una persona muy amable que me ha dado una ayuda para poder mejorar este proyecto!! así que muchas gracias para él.


Saludos y espero comentarios!!! :) :)



Bueno, voy a dejar una imagen con los pasos necesarios para poder crear las imágenes con los emails, esta explicación la hice para un amigo que es usuario de Avast! que no entendía el uso del programa, así que me tomé el trabajo de dejarle los pasos para que él y cualquier persona pueda guiarse, estos pasos son los básicos.

Este fué mi mensaje:

Citar
Hola, el programa no tiene instalador, es un programa portable (que no requiere instalación), por lo que si deseas algún día eliminarlo, solo tienes que borrar la carpeta donde está el programa o dejarlo en tu pc, ya que no se instala, solo se lo ejecuta.

Para que la herramienta pueda funcionar y la puedas utilizar, debes ejecutar el programa Cuentas de emails en imagenes.exe y se abrirá la ventana del mismo y ya solo tienes que leer mi primer post donde explico para que sirve para botón.

Por ejemplo te voy a mostrar como crear una imagen del mail principe_azul_ejemplo@hotmail.com

Cuando abras el programa podés configurar los colores que vos quieras usar, el color del texto y el color del fondo, en este ejemplo voy a usar el color azul para el texto y el blanco para el fondo.

Entónces, abrimos el programa (ejecutamos Cuentas de emails en imagenes.exe), primero escribimos el o los mails que quieramos crearlos como imágenes (paso 1), luego configuramos el color del texto a blue (paso 2), luego el color del fondo a white (paso 3), podemos elegir el tamaño del texto, yo elijo el 17 (17 pixeles) (paso 4), ahora podemos elegir el formato de color, yo para este ejemplo uso el más simple y más fácil, el Normal/Hexadecimal para el texto (paso 5), para el fondo también el mismo (paso 6), ahora guardamos la configuración llendo al menú Opciones, luego a Guardar Configuración (paso 7), los pasos no necesariamente tienen que ir en órden, vos podés configurar todo lo que desees, pero luego tienes que guardar la configuración para que se mantenga establecida siempre y cuando hayas hecho algún cambio, sino podés dejarlo como lo habías dejado después de guardar la última configuración.

Por último debés presionar el botón Crear imágenes! (paso 8 - último paso) y en el instante se creará una imagen con el nombre principe_azul_ejemplo@hotmail.com.png y esa será la imagen del mail :)
Las imágenes de los mails se crearan en la misma carpeta donde está el programa.


Voy a mostrarte los pasos con capturas:



y el resultado será este:



Ya tienes el mail creado como una imagen :)


Recordá que en los pasos 2 y 3 debés escribir los nombres de los colores en inglés o también podés usar colores en hexadecimal.
También podés usar formatos de colores para texto y/o fondo en RGB.

Amigo, no pude con tu programa, ¿como lo instalo y ejecuto? no tiene un setup solo unos archivos sueltos, no supe que hacer con el, disculpa mi ignorancia soy novato.

Los archivos que ves junto con el programa, uno es el intérprete y los demás son las librerías que el programa necesita para poder funcionar.


Cualquier otra duda me preguntas.

Saludos!!! :) :)

3
Capturador de ventanas activas y pantalla completa



Hola amigos!! :)

Hoy voy a aportar un programa que he creado y que les va a servir para tomar capturas de pantalla de ventanas activas o de la pantalla completa.

Este Software lo que hace es capturar ventanas activas de información/error/advertencia/programas/etc., aquí les muestro las capturas de las posibles ventanas activas que pueden capturar:


          

   

















Además el programa también puede capturar la pantalla completa:




¿Para qué sirve este Software?

Muchas veces nos encontramos en situaciones donde nos gustaría poder tomar una captura de pantalla, en muchos casos solamente necesitamos tomar una captura de una ventana de error, de información, de un programa o de cualquier tipo de ventana y lo que hacemos generalmente es tomar la captura de la pantalla completa, cuando sólo nos interesa la ventana y no lo demás, por lo que tendríamos que recortar la imagen o difusar parte de ella para que no se vean datos que no quieramos que sean vistos cuando publiquemos esa captura en internet.

Con este programa podrás capturar cualquier tipo de ventana activa, no importa la interfaz gráfica que utilice, por más moderna o antigua que sea, el programa la capturará y la subirá a Imgur.com, hay que tener en cuenta que este Software además de capturar ventanas activas, también puede capturar la pantalla completa.



¿Cómo se distribuye este Software?

En un archivo comprimido en zip, que al descomprimirlo estarán éstos 4 archivos:



cacert.pem => Es el certificado de Seguridad requerido por la librería requests.
Capturador de ventanas activas y pantalla completa.exe => El programa inicial.
Configuracion.ini => Archivo de configuración.
nircmd.exe => Programa para realizar las capturas.


Se utiliza el programa Windows command line tool para realizar las capturas mediante Send Keys:

NirCmd - Windows command line tool

Y la librería Imgurpython para subir las capturas a Imgur.com:

GitHub - Imgur/imgurpython: The official Imgur python client library



¿Cómo se lo configura y cuáles son sus configuraciones?

Deben modificar el archivo Configuracion.ini que está ubicado junto con el programa principal.
Las configuraciones son las siguientes (ejemplo):

Código: [Seleccionar]
[Configuracion]
capturar pantalla completa = false
tiempo de espera en segundos al tomar la captura = 2
reintentos si falla al subir la captura = 2
mostrar la url de la imagen con bbc = true
extension de la imagen = png
guardar en el portapapeles = true
abrir este archivo para copiar la url de la imagen = true

capturar pantalla completa => Debe ser false o true, si está en false, el programa va a capturar solamente las ventanas activas y si está en true, entónces capturará toda la pantalla.

tiempo de espera en segundos al tomar la captura => Es el tiempo en segundos que el programa debe esperar para tomar la captura, por defecto viene configurado en 2 segundos, que es el tiempo mínimo permitido.

reintentos si falla al subir la captura => En el caso que haya algún error al subir la captura, el programa reintentará las veces que se le haya configurado, por defecto son 2 reintentos.

mostrar la url de la imagen con bbc => Si setea a true, la url de la imagen tendrá la etiqueta bbc de imagen:

[img]http://i.imgur.com/fVkdfcs.png[/img]

si se setea a false, entónces tendrá solamente la url:

http://i.imgur.com/fVkdfcs.png

extension de la imagen => Puedes elegir cualquiera de los siguientes formatos de imagen para las capturas:

png, jpg, jpeg y bmp

Si se configura un formato que no es ninguno de los permitidos, el programa usará el jpg

guardar en el portapapeles => Si seteas a true, el programa copiará en tu portapapeles (clipboard) la url de la imagen, si seteas a false, no la copiará.

abrir este archivo para copiar la url de la imagen => Si esta opción está en true, el archivo de configuración se abrirá luego de capturar la ventana o pantalla y de haberse subido a Imgur, si lo seteas a false, el archivo no se abrirá.


Nota: La url de la imagen siempre se guardará al final del archivo Configuracion.ini



¿Cómo se lo utiliza?

Aquí les dejo un video tutorial para que puedan aprender a utilizarlo:

https://youtu.be/9JjACs2NY5U


Nota importante: Hay ventanas de programas que no pueden ser capturadas, esto es normal ya que esas ventanas son de programas que tienen acceso de Administrador, por lo tanto para poder capturar esas ventanas o la pantalla completa, se debe ejecutar el Software con permisos de Administrador, para hacerlo sigue estos pasos:

1. Hacer un clic izquierdo sobre Capturador de ventanas activas y pantalla completa.exe, luego hacer un clic derecho.
2. Se abrirá la siguiente ventana de opciones:



haz clic sobre la opción Ejecutar como administrador.
3. Windows te preguntará si deseas permitir que el programa realice cambios en el equipo, presionas el botón Si.
Ahora podrás tomar la captura del programa que desees.


Saludos y espero comentarios!! :)


Fuente: http://www.argentinairc.net/Foro/index.php?topic=1111.0

4
Bloqueos Masivos v0.2


Dedicado para:




Hola amigos!!

Voy a aportar la segunda versión de este Excelente Programa para combatir bots maliciosos y proxys que conectan a nuestro sitio web.

Este programa es la segunda versión de Bloqueos Masivos v0.1, y he hecho varios cambios muy notables en esta Nueva versión.


Lista de cambios:

+ Se agrega la posibilidad de configurar las DNSBLs que quieras.
+ El programa ahora trabaja con la API Oficial de Stop Forum Spam.
+ Se puede configurar el nombre del archivo de accesos de Apache.
+ Se pueden configurar los reintentos que hará el programa si la petición GET falla en el caso de tratarse de la API de Stop Forum Spam.
+ El programa informa todos los datos desde la consola en forma totalmente ordenada.
+ Se agrega la posibilidad de configurar los Timeouts, es decir, el tiempo que debe esperar el programa como máximo para reintentar por Conexión fuera de tiempo.
+ El programa permite usar un separador para seperar las líneas que muestra la consola durante el chequeo, es decir que habrá una línea vacía intermedia entre cada informe de las IPs.
+ Posibilidad de configurar el color del texto de la consola.
+ Posibilidad de configurar el color del fondo de la consola.
+ El programa al terminar el chequeo de las IPs, puede opcionalmente, abrir el archivo de Informe.
+ Los datos del informe ahora disponen de la fecha en el que se realizó el chequeo y otros datos más.
+ Las IPs de los usuarios que conectaron al servidor web, pueden estar en cualquier lugar, el programa ahora utiliza una expresión regular para poder extraer la IP.
+ El programa ahora trabaja con números decimales, en vez de enteros, por ejemplo:
Peticiones: Antes: 85521   --- Ahora: 85.521
+ Se utiliza la menor cantidad de bytes obtenidos en las peticiones GET cuando se configure Stop Forum Spam.
- Se eliminó la DNSBL sfs.dnsbl.st porque desde hace un tiempo dejó de funcionar y ya no es fiable.
- Se eliminó la repetición del texto "Checkeada..." cuando una IP ya ha sido analizada.


Esos son los cambios que hay desde la versión 0.1 a la 0.2.
Voy a comenzar a explicar para que sirve este programa y todas las configuraciones que dispone.

Bloqueos Masivos v0.2 sirve para analizar todas las IPs que conectan a nuestro Sitio web, que puede ser una página web, un foro, un blog, etc., el programa analiza el archivo de Accesos access_log, este archivo almacena todas las IPs que conectan a nuestro sitio web y otros datos más, generalmente suele tener este formato:

187.178.28.67 - - [21/Dec/2014:23:27:41 -0300] "GET /Foro/index.php?topic=38.0 HTTP/1.1" 200 10485 "https://www.google.com/" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36"

Si deseas saber cuál es el significado de todos esos parámetros, puedes leer este tema:

http://www.argentinairc.net/Foro/index.php?topic=521.0

ahí he explicado para que sirve cada uno.

Bueno, el programa chequeará todas las IPs que hayan en el archivo Log de accesos de Apache e irá comprobando si esas IPs figuran en las DNSBLs o en Stop Forum Spam, en el caso de que figure al menos en 1 Lista Negra, el programa ya aplicará le denegación correspondiente para que esa IP no pueda volver a ingresar al Sitio web, esto por supuesto lo hará el programa cuando haya terminado de analizar todo el archivo de acceos y creará un archivo de nombre htaccess.log, ahí habrá por ejemplo esta información:


________________________________________________________
| Programa: Bloqueos Masivos
| Versión: 0.2
| Creado por: Príncipe_Azul
| Comunidades: www.MisArtesanias.net - www.ArgentinaIRC.net/Foro
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

************************* [ RESUMEN ] *************************

Fecha del análisis: Viernes 23 de Octubre de 2015 - 02:57:43 Hs.

Peticiones: 85.518
IPs chequeadas: 2.862
IPs listadas: 156
IPs no listadas: 2.706


************************* [ AGREGAR A .htaccess ] *************************

deny from 174.127.102.200
deny from 155.94.245.143
deny from 195.154.181.168
deny from 212.129.3.170
deny from 107.161.84.108
deny from 141.0.13.48
deny from 82.145.209.134
deny from 155.94.170.155
deny from 93.184.66.227
deny from 5.135.71.236
deny from 87.117.189.206
deny from 69.197.185.186
deny from 23.94.87.169
deny from 5.157.49.39
deny from 89.69.122.151
deny from 5.157.49.199
deny from 75.137.190.246
deny from 176.15.194.236
deny from 94.153.10.149
deny from 192.119.158.174
deny from 83.23.175.144
deny from 23.94.87.168
deny from 88.150.210.88
deny from 178.49.154.229
deny from 208.52.166.78
deny from 192.3.246.45
deny from 217.69.133.18
deny from 217.69.133.11
deny from 85.17.24.95
deny from 189.45.201.226
deny from 192.3.243.195
deny from 86.106.16.133
deny from 98.117.210.21
deny from 181.49.221.6
deny from 178.137.160.78
deny from 121.54.54.224
deny from 176.126.163.224
deny from 188.143.235.96
deny from 206.144.86.11
deny from 31.184.238.209
deny from 5.101.222.18
deny from 63.141.251.162
deny from 192.119.158.190
deny from 192.3.243.210
deny from 138.117.172.218
deny from 178.137.85.32
deny from 195.154.252.232
deny from 117.26.249.231
deny from 27.131.47.132
deny from 200.49.206.195
deny from 176.37.40.213
deny from 198.50.246.64
deny from 94.232.16.183
deny from 141.0.8.141
deny from 58.62.234.165
deny from 176.97.116.134
deny from 91.239.24.57
deny from 79.120.10.98
deny from 77.75.77.36
deny from 95.141.20.200
deny from 46.118.157.191
deny from 37.187.129.166
deny from 58.62.234.59
deny from 89.72.212.189
deny from 106.9.194.193
deny from 69.70.33.51
deny from 113.66.40.70
deny from 92.222.28.243
deny from 113.66.40.234
deny from 46.246.46.31
deny from 109.201.152.244
deny from 194.230.155.183
deny from 167.114.174.182
deny from 118.174.132.218
deny from 88.198.233.141
deny from 213.163.65.14
deny from 103.253.146.130
deny from 80.83.239.5
deny from 58.62.234.56
deny from 91.213.8.236
deny from 91.200.12.19
deny from 91.200.12.7
deny from 46.166.188.199
deny from 109.201.152.227
deny from 95.39.49.35
deny from 93.171.205.18
deny from 91.242.217.93
deny from 200.49.193.195
deny from 178.150.15.176
deny from 176.8.2.54
deny from 192.99.2.137
deny from 91.200.12.71
deny from 222.77.202.50
deny from 78.154.167.185
deny from 23.95.122.89
deny from 179.61.138.133
deny from 192.77.254.84
deny from 46.185.47.80
deny from 176.8.97.23
deny from 58.62.235.32
deny from 136.8.33.70
deny from 107.170.160.231
deny from 96.47.226.20
deny from 89.28.163.36
deny from 82.208.101.152
deny from 58.62.235.159
deny from 91.200.12.116
deny from 91.200.12.130
deny from 200.123.55.253
deny from 155.133.10.122
deny from 58.62.235.59
deny from 46.185.47.216
deny from 91.200.12.63
deny from 193.201.224.170
deny from 176.10.104.240
deny from 113.160.250.29
deny from 89.169.4.169
deny from 58.62.234.97
deny from 176.8.3.187
deny from 89.72.153.17
deny from 91.121.159.196
deny from 212.3.104.250
deny from 46.165.208.243
deny from 23.88.23.189
deny from 77.247.181.165
deny from 84.47.187.80
deny from 178.150.15.194
deny from 77.109.141.138
deny from 192.99.1.101
deny from 58.62.235.206
deny from 106.9.195.93
deny from 58.62.235.10
deny from 46.161.60.22
deny from 176.8.169.151
deny from 208.31.49.57
deny from 91.121.179.219
deny from 5.175.214.227
deny from 192.3.242.75
deny from 46.102.97.78
deny from 46.102.97.208
deny from 94.242.212.78
deny from 118.70.171.9
deny from 79.105.251.104
deny from 95.141.20.199
deny from 110.86.166.194
deny from 1.161.120.92
deny from 213.227.248.167
deny from 200.62.19.4
deny from 37.115.188.175
deny from 191.101.55.40
deny from 93.172.13.115
deny from 213.111.233.25
deny from 190.94.211.168
deny from 95.141.29.56
deny from 199.244.119.162
deny from 85.192.162.173


La parte que debemos usar para banear a las IPs maliciosas es la que está de color púrpura.
Esas son las denegaciones que debemos agregar al archivo .htaccess y subirlo por FTP, el mismo está ubicado en:

/home/usuario/public_html/.htaccess

ó en

/home/usuario/htdocs/.htaccess

descargan el archivo .htaccess y al final de todo el archivo, pegan todo el contenido de las IPs baneadas, con esa restricción, esas IPs ya no podrán entrar en nuestro Sitio web ni en ningún lado de nuestra web, quedan totalmente y permanentemente baneadas.


Bueno ahora paso a explicarles las configuraciones que dispone el programa, este es un ejemplo del archivo Configuración.ini:

Código: [Seleccionar]
Nombre del archivo de accesos = access_log
DNSBLs = stopforumspam
Reintentos = 3
Timeouts = 5
Linea intermedia = no
Color del texto =
Color del fondo =
Abrir archivo log al terminar el chequeo? = si




Atributos de colores:
0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Púrpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro
A = Verde claro
B = Aguamarina claro
C = Rojo claro
D = Púrpura claro
E = Amarillo claro
F = Blanco brillante


Nombre del archivo de accesos -->>> Aquí debes escribir el nombre del archivo de accesos de Apache.

DNSBLs -->>> Aquí escribí todas las listas negras que deseas usar para banear las IPs maliciosas, puedes usar tantas como quieras, un ejemplo sería:

rbl.efnetrbl.org,dnsbl.dronebl.org,stopforumspam

si deseas usar la API oficial de Stop Forum Spam, debes escribir solamente el nombre, tál como lo puse en el ejemplo anterior, si no quieres usar Stop Forum Spam, entónces simplemente no lo escribas, por ejemplo:

rbl.efnetrbl.org,dnsbl.dronebl.org

Reintentos -->>> Estos reintentos solo funcionan si vas a utilizar la API de Stop Forum Spam, es decir, si en la lista de DNSBLs vas a utilizar stopforumspam.

Timeouts -->>> Son los segundos que debe esperar el programa como máximo para considerar una conexión fuera de tiempo y reintentar nuevamente con la petición.

Linea intermedia -->>> En esta opción, creo que lo mejor es verlo con una captura ;):

Linea intermedia (no):



Linea intermedia (si):



Por defecto esta opción viene en no, se configura en no o si.

Color del texto -->>> Acá podés configurar el color del texto de la consola, estos colores son los mismos que utilizan los programas en Batch.

Color del fondo -->>> Acá podés configurar el color del fondo de la consola, estos colores son los mismos que utilizan los programas en Batch.

Abrir archivo log al terminar el chequeo? -->>> Simplemente lo configuras a no o si y se abrirá automáticamente el archivo Log cuando el programa termine su trabajo (si lo configuraste en si).


Esas son todas las configuraciones que dispone el programa, abajo de ellas, está esta tabla:

Atributos de colores:

0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Púrpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro
A = Verde claro
B = Aguamarina claro
C = Rojo claro
D = Púrpura claro
E = Amarillo claro
F = Blanco brillante



que te servirá para configurar los colores del texto y fondo de la consola.
Por ejemplo si yo quisiera que el color del texto sea verde y el fondo negro, debería configurarlo así:

Color del texto = A
Color del fondo = 0

y se mostrará así la consola del programa:



si quisieramos usar color azul y fondo blanco, entónces configuramos así por ejemplo:

Color del texto = 1
Color del fondo = 0

y se mostrará así la consola:




Recordá que si escribes mal algún atributo de color, el programa usará el color por defecto (texto blanco, fondo negro).
Si deseas usar los colores por defecto, entónces dejá vacío los valores, ejemplo:

Color del texto =
Color del fondo =


Abajo está el adjunto del programa, lo bajan y lo descomprimen, se creará una carpeta de nombre Bloqueos Masivos v0.2 y dentro de ella estarán 2 archivos, 1 es el programa ejecutable y el otro, es el archivo de configuración:

Bloqueos Masivos.exe
Configuracion.ini



IMPORTANTE: Este programa no debe superar por día las 20.000 peticiones permitidas por Stop Forum Spam, yo he cargado mi access_log + el de mi mujer Merlina y ha alcanzado a 85.000 líneas, de las cuales el programa solo hizo 2.862 peticiones, ya que las demás peticiones que habían en el Log de accesos, eran IPs ya chequeadas, por lo tanto el programa no vuelve a comprobarlas por lógica.

Fuente:
Citar
Actualmente se limitan las consultas diarias en mi servidor a un máximo de 20.000 por día. Si necesitas más, considera emplear el método alternativo mediante DNSBL mostrado abajo, o pregúntanos – con educación – por una excepción.

Fuente original del programa: http://www.argentinairc.net/Foro/index.php?topic=530.0

Bueno espero que les haya gustado!!!

Descarga: http://www.mediafire.com/download/8dxnpxt2qfi21xx/Bloqueos_Masivos_v0.2.zip


Saludos y espero comentarios! ;) :)

5
Tool to encode files on Base64





Descripción: Tool to encode files on Base64 es un programa que nos sirve para codificar y decodificar archivos, programas, imágenes, cracks, keygens, mp3's, mp4's, archivos de video, archivos comprimidos, inclusive hasta programas ejecutables, en pocas palabras Tool to encode files on Base64 puede codificar y decodificar cualquier archivo a Base64.

Esta herramienta es muy útil si queremos ocultar en nuestra pc, algún archivo que no quisieramos que nadie sepa de su existencia por algun razón, para eso utilizaremos el programa que nos hará el favor de convertir un archivo cualquiera a un archivo de texto con un contenido de letras aleatorias, mayúsculas y minúsculas, números, barras, etc. (codificación Base64).

La herramienta también se la puede usar para que ciertos programas no sean detectados por Anti Virus, Anti Espías, Anti Malwares, etc., por ejemplo puedes codificar un Activador de Windows 7 y lo tendrás seguro de que ningún programa vaya a detectarlo, de esa forma podrás moverlo o copiarlo a donde quieras sin preocuparte de que salte el anti virus o algún otro programa de seguridad informando que ese Activador es una herramienta de hacking o un programa malicioso, al usar esta herramienta, eso pasará a la historia.

De esa forma nos podremos librar de que el antivirus no nos fastidie a la hora de copiar o mover algún programa, si bien es cierto que en los programas de seguridad como Anti Virus, se pueden exceptuar los programas para que el antivirus u otro programa de seguridad, ignore el archivo para no ser analizado ya que lo hemos excluído, pero el problema de estas excepciones, es cuando queremos mover o copiar el programa a otra obucación, tendremos que otra vez volver a exceptuarlo, esta herramienta que he creado nos evita ese inconveniente.

Con Tool to encode files on Base64 es posible codificar hasta archivos de texto.
El programa dispone de un archivo de configuración llamado Configuracion del Codificador.ini, para que puedas adaptarlo a tus necesidades.


Código: [Seleccionar]
# Configuración:

Accion =
Nombre por defecto para archivos de entrada a codificar =
Nombre por defecto para archivos de salida codificado =
Nombre por defecto para archivos de entrada a decodificar =
Nombre por defecto para archivos de salida decodificado =


Accion: Es la acción que hará el programa, es decir, codificar o decodificar.

Nombre por defecto para archivos de entrada a codificar: Aquí debes escribir un nombre de archivo que será usado por defecto para las nuevas codificaciones, recuerda que en este valor, tiene que ser un nombre de archivo de entrada, no de salida, es decir, un nombre de archivo que desees codificar.

Nombre por defecto para archivos de salida codificado: Aquí debes escribir un nombre de archivo que será usado por defecto para las nuevas codificaciones de salida/output.

Nombre por defecto para archivos de entrada a decodificar: Si deseas decodificar un archivo, es decir, dejarlo normal como antes, aquí podés especificar el nombre que el programa usará por defecto para todos los archivos decodificados de entrada.

Nombre por defecto para archivos de salida decodificado: En esta opción podrás configurar un nombre de archivo que será el utilizado para decodificaciones futuras de salida.

Para que entiendan un poco mejor como se configura este programa, voy a dejar un ejemplo:

Voy a codificar una imagen de nombre imagen.png y el archivo codificado de salida tendrá el nombre Imagen codificada.txt:

Código: [Seleccionar]
Nombre por defecto para archivos de entrada a codificar = imagen.png
Nombre por defecto para archivos de salida codificado = Imagen codificada.txt

ahora haremos lo inverso, en vez de codificar, vamos a decodificar la imagen para ver si vuelve a ser la misma imagen, con su mismo tamaño, calidad y extensión, voy a probar a decodificar la imagen con el nombre Imagen codificada.txt (que es el que hemos usado en el ejemplo anterior) y tendrá de salida el nombre Imagen normal.png:

Código: [Seleccionar]
Nombre por defecto para archivos de entrada a decodificar = Imagen codificada.txt
Nombre por defecto para archivos de salida decodificado = Imagen normal.png


Cuando codifiquen un archivo, el programa tratará de hacerlo lo más rápido posible, a modo de prueba recién codifiqué un video de 102 MB para ver la demora del programa, el proceso demoró 5 segundos desde el momento en el que se hizo doble clic al ejecutable.

Si van a trabajar con archivos más pequeños o mucho más pequeños, verán que el programa no tiene demora, ya que cuando hagan doble clic, ya estará su archivo codificado o decodificado.

Un consejo que les daré, es que cuando codifiquen sus archivos, por ejemplo pueden generar el nombre del mismo con este nombre:

Juego GTA.exe.txt

entónces cuando quieran decodificarlo, ya sabrán que la extensión era .exe

NOTA: Todos los archivos que quieran codificar o decodificar deben estar en el mismo directorio donde está el programa.

Por último comentarles que si ustedes quisieran que el programa siempre les pregunte el nombre del archivo de entrada y salida para codificar o decodificar para que puedan escribir el o los nombres manualmente, simplemente deben dejar el valor vacío de la opción que quisieran escribir el nombre en la consola.
Ejemplo:

Código: [Seleccionar]
Accion = codificar
Nombre por defecto para archivos de entrada a codificar =
Nombre por defecto para archivos de salida codificado =
Nombre por defecto para archivos de entrada a decodificar = Ejemplo.txt
Nombre por defecto para archivos de salida decodificado = Ejemplo.png

Con esa configuración el programa codificará archivos y te preguntará el nombre del archivo que deseas codificar y el nombre del archivo codificado.

Les dejo como muestra una imagen que he convertido a Base64, la misma es una bandera de Argentina:



y esta es su codificación:

Código: [Seleccionar]
/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCADZAVIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2uiiivtj48KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK9gorxP7Z/ufj/AMA9j+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for2Cij+2f7n4/wDAD+yf7/4f8E8for10wwkkmKMk9SVFFH9s/wBz8f8AgB/ZP9/8P+CPooorxD2AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACsrUdbggttUNqrXV1pkQlntQrLIVwWG0EfNuCsFI4LAjPBxX1rWbZNUj8PtdzaZqF4hawuJIsxTOoyVU5wzDqYyQxUMRwMjjtZ8QXtnqz659lFrrGjwGLWdPdjsurPORcQt/Eitls8FVL7hkBWyq1VTV2VGPM7HVSa7IfHej6db3EUumalpNzdI4AIaSOSDYVYdmSWQ45ztBGMHOJpvjG9uvD/AIQjiVX1XW73yHAHCRwFmuHOf9mMrn+84xXH2OoWdsPDltab1Okamg06ZkI2adOYmKZ5+7C6o3pj2rnPCHiGO38O+Hb+OBkutAh1JYSxLqJpXOQeAThJI5CP7qSY+6M+c80pXavs7fda/wB2v3G6w8j3i38R2Dxa1ezSxQabpMjRTXTv8uY0DSn2CZ2n3Vh2rYjbfGrgMNwBwwwR9RXkWiy2NlpWn2l/I83h7SLPz7oIxk/tHUpX3lVxjzhuZioGQxbJBGwnuLHXhZtGfEV5Ba6pfkfZdIjkDzRoT8q7QSXfuzD5R9FLHvo141Vdf1/WxjKDidPRRRW5AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABUGoXdrY2U13e3UVrbxKWkmlcKqD1JPAqeq+oPepbFtPt7e4nyMJPOYkI7/MEY/pQBwHiCe51rRs20eh+PNBkdZAsN4tvdxEEFXSRSUdh1BXymHGMnr554h1rTH3aZc3OoSRJn7O+pWzLd6eWBBhnbB2qw+6TgEH5vWTrPHOhNLc3Wrax8NfDbSyFY/tcHiJreScnONx8qLceTwWya4G/sWGtacl/Z3yWtveRCzaW3x5OZV+UyJPsIJ2r/qyWA53ctXzGe4r2MPP53/Jfm+6V7NejgqXOzT0rwrd6jYJJr97doZbfyXtlKK+z94Mu4ziRklO/YQC2SMZq5P4MsgsC2t3dLFDuH2aZ/MhcMVLAg887QMg8AsOjEHJ+Imgavf63aajZ61c2NvFHsY+RGyIzHapQ53h8kEAI2WwMjjCazoGr33xIj1K31aaK3gaItDDCjMqbcDLSMu1dwcgoHBO4EcYP5v7SdS1R1krpvZ2VtLfdoj3+WMfd5L/r5lyw1/UI9QM97d21rdaWGiWHyHlkifb80+1VKrvJypKsNrDLKWwvb+F21u0glubDS7XSftcga817xBJ+/nfAACQK2SvACgygAc/MSc+d+NpgnjeGFJpV3WcTskC2pk3eZIEYee4xkB1yik+6456nwzo8l3I80Hgex1+4jQHfrOuQ/ISfumGNJVRh6lQc8V91w5ip1Yq76ba6fhZLt1tpex42PpKD/wCG/wAz13Rby0uIGgg1eDU5oMCd0kQsCeRuCcLx09h361frI8MW95Z2htptE0nSIFw0cOn3BkXJ+9keVGB9RnNa9faLY8gKKKKYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVBqFtDeWU1tcNKsUilXMUzRMB7OhDL9QRU9FAHlOoeGtO824fw74Jt7mPaTLqPia7mNlGFHO2GUu5xjrtRe4Y157f+HrSUHWYIftP2hhFDe21jDZJIM5xEMZTBGC4w+FOYyfmHufinRbG7nk1LXb2/utPhjURaZEzLEzZ6lE+aZ2OAFbI4GFzkni/Emm6reappFrdhYdT1K4EdtY25/d6TYRg+Y4KkAykFVLgjG7CEFQ1ePmeDdem0tP6+79fOO51YerySv/X9f1qcdqOqQa1pEVheah/ZF7LM0MDTQLLDO4LoC0Z4IYo5CMR93IztyKujXVh4ZglvrnX4tZmkURiPTbKOGH74G5hHkAguoLO2AD2yc3F0Sz1bxNYW9jI9pFquo3MWmuhGTb20JhaRBjBX5kkXGAMOo6isrwt4eudV0TS/sLvBqIsJNTttn3p7hZ7iNlwRyfLSIAdmVD2r4j/V6qrw+xfbTvsna+zXrf5HsfX479f66XHxWf8AbGoz61eyzWlzbsReCOINLZr8q+WykbjGCDl43COCS2FO5ez0bwypQS33hnQ/FmluAV1HRZBa3SdwzW+VQcYP7twwxwrHqzw/ZWd6mlXFtcPpj6ri78P6rAQwt5doZrKUZwygIE2HhghIO7O3svDul3FxcjUFtoPDfiSFgmqQwR+Za3ox98DK70PVXyHUgq3Rlr6/Ksu+r01F7Lp5+X/B6bW2PKxNf2krnQ+E9PtLHTAbK61WeGUlk/tCaZ5EGfu4l+ZQOeDz+la9FFe+lY4gooopgFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAEA4JA46Vg3+izQw63e6XKf7Y1NdkdzJgm3GwIgX/AGEOX29yWPU1vUUmrgcRZeFLa18beHks7EQaX4Y0eSGyf+885VCv1CQ5J6kv+eL4c8P3dloXw4uUspFlsb+Y3JXDGGC4huCeRk7TIYR+We5r1Gip9mv6/ryHdnKWvhC2TT9Q0VjLDYNqP9pafJA4V7WVn807OO029wCCpD7SCMiuqUEKAx3EDk460tFUkkIKKKKYBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHlf9q6p/0Erz/v8At/jR/auqf9BK8/7/ALf41Tor7P2UOyPkvaT7suf2rqn/AEErz/v+3+NH9q6p/wBBK8/7/t/jVOij2UOyD2k+7Ln9q6p/0Erz/v8At/jR/auqf9BK8/7/ALf41Too9lDsg9pPuy5/auqf9BK8/wC/7f40f2rqn/QSvP8Av+3+NU6KPZQ7IPaT7suf2rqn/QSvP+/7f40f2rqn/QSvP+/7f41Too9lDsg9pPuy5/auqf8AQSvP+/7f40f2rqn/AEErz/v+3+NU6KPZQ7IPaT7suf2rqn/QSvP+/wC3+NH9q6p/0Erz/v8At/jVOij2UOyD2k+7Ln9q6p/0Erz/AL/t/jR/auqf9BK8/wC/7f41Too9lDsg9pPuy5/auqf9BK8/7/t/jR/auqf9BK8/7/t/jVOij2UOyD2k+7Ln9q6p/wBBK8/7/t/jR/auqf8AQSvP+/7f41Too9lDsg9pPuy5/auqf9BK8/7/ALf40f2rqn/QSvP+/wC3+NU6KPZQ7IPaT7suf2rqn/QSvP8Av+3+NH9q6p/0Erz/AL/t/jVOij2UOyD2k+7Ln9q6p/0Erz/v+3+NH9q6p/0Erz/v+3+NU6KPZQ7IPaT7suf2rqn/AEErz/v+3+NH9q6p/wBBK8/7/t/jVOij2UOyD2k+7Ln9q6p/0Erz/v8At/jR/auqf9BK8/7/ALf41Too9lDsg9pPuy5/auqf9BK8/wC/7f40f2rqn/QSvP8Av+3+NU6KPZQ7IPaT7suf2rqn/QSvP+/7f40f2rqn/QSvP+/7f41Too9lDsg9pPuy5/auqf8AQSvP+/7f40f2rqn/AEErz/v+3+NU6KPZQ7IPaT7suf2rqn/QSvP+/wC3+NH9q6p/0Erz/v8At/jVOij2UOyD2k+7Ln9q6p/0Erz/AL/t/jR/auqf9BK8/wC/7f41Too9lDsg9pPuy5/auqf9BK8/7/t/jR/auqf9BK8/7/t/jVOij2UOyD2k+7Ln9q6p/wBBK8/7/t/jRVOij2UOyD2k+7CiiirICiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z

Saludos y espero comentarios!!!


Fuente: http://www.argentinairc.net/Foro/index.php?topic=718.0

6
Generador de Claves Altamente Seguras - Claves Seguras v0.1

Hola a todos!!

Hoy voy a aportar este programa que sirve para generar claves/contraseñas Altamente Seguras, el mismo trabaja con codificación base64 y dispone de diversas opciones:

Letras:
Se pueden generar claves con letras minúsculas.

Números:
Se pueden generar claves con números del 0 al 9.

Símbolos:
Es posible utilizar símbolos en las contraseñas.

Mayúsculas:
Al activar esta opción, las contraseñas se generarán con letras mayúsculas y minúsculas, si esta opción no estaría activada, entónces las letras solo serían minúsculas.

Longitud:
Posibilidad de elegir la longitud de la contraseña, lo permitido es de 4 a 50 dígitos.


Claves Seguras guarda la configuración que hayas establecido, esto evita tener siempre que setear nuevamente las opciones.
NOTA: Para que los cambios se guarden en el archivo de configuración, se debe pulsar siempre el botón Generar! luego de elegir las opciones.


Claves Seguras también dispone de un botón para Copiar la clave, al pulsarlo, la clave que haya en la caja generadora, será copiada.
Tené en cuenta que no es necesario seleccionar/pintar la clave, el programa copiará toda la clave completa.

También dispone de un botón Borrar, el mismo sirve solamente para borrar la clave que haya en la caja generadora.

El botón Salir, cierra el programa.

Puedes minimizar el programa Claves Seguras cuando lo desees, y volverlo a usar.
Este Programa está comprimido en formato .zip con Ultra compresión para que pese lo menos posible, Claves Seguras tiene la ventaja de ser Portable ya que no necesita ninguna instalación.
Cuando bajes el archivo ClavesSeguras.zip y lo descomprimas, encontrarás el ejecutable .exe y todas las librerías que el programa necesita para poder funcionar.

El archivo de configuración se llama Configuracion.ini
El archivo del Favicon se llama Candado.png

Por favor no intentés modificar la imagen, ni ingresar valores incorrectos en las secciones del archivo Configuracion.ini ya que cualquier mínima modificación, el programa mostrará un mensaje de error describiendo el problema por el cuál el programa dejará de funcionar hasta que el valor vuelva a dejarse como estaba.
Lo mismo pasa con la imagen, si cambias la imagen, el programa no funcionará, por más que tenga la misma extensión y el mismo tamaño exacto (781 bytes).

Espero que este Programa Claves Seguras que he realizado le pueda servir a muchas personas y que les guste mi creación o simplemente que les sirva.
El programa lo he probado de muchas formas y no hay ningún error, sin embargo si encuentras algún error, por favor avisame por MP del error así lo corrijo.

Una captura del Programa:



Descarga: http://www.mediafire.com/download/vjv15cb5gkcuuea/ClavesSeguras.zip


Fuente: http://www.argentinairc.net/Foro/index.php?topic=235.0


:) Saludos!! :)

7
Hola mis queridos amigos!! :) :)

Tanto tiempo hace que no pasaba por éste foro en donde me he sentido muy a gusto y siempre me han tratado muy bien, se vé muy buena educación y muy buen trabajo.
Bueno amigos les comento que ahora pasé a ver como estaba el foro y también a compartir algunos programas que he creado.

Voy a ir dejando los aportes y espero sus comentarios!! :)

Ojalá estén muy bien y me recuerden porque yo nunca me olvidé de ustedes ni del foro ;)


Les mando un fuerte abrazo y mucha suerte!!!

Edito: Ya están aportados varios de mis programas!! :)
Muchas gracias por el espacio y por la posibilidad que me dan ;)

8
Hola amigos!!! :)

Bueno, voy a dejar como aporte un programa que hice hace unos meses, pero que he decidido modificarlo para mejorarlo y compartirlo, actualmente yo lo uso ya que en mi Panel de Control (que no es cPanel), no tengo posibilidad alguna de poder ver el log de accesos de mi sitio y el de mi mujer Merlina.

Si bien en cPanel podemos ver el Log de Accesos en una tabla, pero solamente se muestran las últimas 200 peticiones y con este programa que hice, se pueden ver todas las peticiones.
El programa si bien no usa tablas HTML, cada petición está ordenada en forma de tabla, pero como dije no es una tabla HTML, sino un órden similar al de las tablas HTML.

No me gustó hacerlo en tablas HTML porque si bien puedo ponerle un borde 0 para que no se noten los bordes de las tablas, pero lo que no me gustó como queda, son los User-Agent y las URLs de Referencia, en una tabla quedaría todo amontonado, es decir la URL o el User-Agent en varios renglones y eso es lo que no me gustó.
Así que probé a hacerlo de mi forma y queda perfectamente ordenado.

Bueno, primero voy a ir explicando como funciona el programa y que es lo que hace.


¿Cómo funciona el programa Log de Accesos en Páginas HTML?

La función del programa es ordenar en tablas todas las peticiones que recibimos en nuestra web/foro/blog para que sea mucho más fácil y rápido poder chequear nuestro Log de Accesos.
El programa crea en páginas HTML, todas las peticiones que recibimos en nuestro sitio, por ejemplo si tenemos en nuestro log de accesos menos de 100 peticiones o 100 peticiones, entónces se creará una sola página con todos los datos ahí adentro, en el caso de que sean por ejemplo 172 peticiones, ya se crearían en 2 páginas, si fuesen entre 201 y 300, ya se crearían en 3 páginas y así sucesivamente.
Cada 100 peticiones sea crea una nueva página.

El programa además de crear varias o muchas páginas, también dispone abajo un método para poder acceder a todas las páginas que se han creado, por ejemplo si se han creado 8 páginas, entónces al final de cada archivo HTML, tendremos los enlaces para acceder a todas las páginas:

Páginas: 1 2 3 4 5 6 7 8

y al hacer clic en cualquier número, accederemos a esa página.


¿Cómo usar Log de Accesos en Páginas HTML?

Realmente los pasos para usarlo son bastantes simples, lo primero que hay que hacer, es descargar el Log de Accesos de tu sitio y ponerlo en el mismo directorio donde está el programa, es muy recomendable que al programa lo guardes en una carpeta exclusivamente para el mismo, ya que podrá crear muchas páginas HTML.
Luego tenés que renombrar el archivo Log que te bajaste a access_log, por supuesto en el caso de que no tenga ese nombre.

Ahora tenés que ejecutar el programa Log de Accesos en Páginas HTML.exe para que se creen las páginas HTML y ordene todas las peticiones de tu sitio en esas páginas.
Cuando el programa termine verás por ejemplo esta ventana:



El programa te informará cuando termine, además te dirá cuántas páginas se han creado y cuántas peticiones tenés en el Log de Accesos.
La herramienta cuenta con un medidor de progeso en porcentaje, para que puedas saber cuánto es lo que se va completando.
Y por supuesto como sabrás, este mensaje te indica de que el programa ya terminó:

Finalizó el trabajo.

además de que el medidor de progreso llegará a 100%.

Ahora tenés que presionar ENTER para cerrar la consola.

Lo último que tenés que hacer, es abrir la primer página que el programa ha creado, es decir dar doble clic a Tabla Logs 1.html, y verás los datos ordenados, por ejemplo:



Arriba de cualquier página que el programa haya creado, te informará cuántas peticiones existen en el archivo Log de Accesos de tu sitio y también la fecha en la que el programa comenzó su trabajo, como también mostrará la hora.

En las páginas creadas podrás observar que todas las peticiones están ordenadas:



Al final de cada página estarán los enlaces con las páginas que el programa ha creado, cada número corresponde a cada página y contienen 100 peticiones, excepto la última que puede contener menos:



Bueno amigos, quería compartir esta Excelente herramienta, ya que no todos tenemos la posibilidad de poder ver el Log de Accesos de nuestro sitio, en cPanel se pueden mirar las peticiones, pero solo las últimas 200 y además que es un poco engorroso mirarlas ahí.
Con este programa podrás ver todas las peticiones de una forma bien ordenada.

Pueden comprobar en este enlace:

https://www.virustotal.com/es/file/0da8e58174e20da1e4ddfb1f311c7098ef0c0bbbc363c20c5aa76ae7e33ddf27/analysis/1437696339/

que el programa está perfectamente limpio, lo he analizado con 55 antivirus y ninguno detectó ningún malware :)

Descarga: http://www83.zippyshare.com/v/awBe1v6B/file.html

Espero que les haya gustado y por supuesto espero comentarios.


Saludos y éxtios para todos!!! :) :)


Fuente: http://www.argentinairc.net/Foro/programas-varios/log-de-accesos-en-paginas-html-v0.1-464.msg1635.html#msg1635



9
Hola amigos!!! :)

Les comento, tengo un problema al intentar leer un archivo, el problema que tengo es que no se muestran las líneas que hay en un archivo, yo intento leer la información de un archivo Log del Servidor de chat que tengo, pero cuando pruebo códigos para leer archivos, ninguno funciona, simplemente cuando entro a la URL donde debería aparecer las conexiones entrantes y salientes de mi chat, simplemente no se muestra nada, es como si fuese que el archivo estaría vacío.

He probado 3 o 4 métodos para leer archivos y no hay caso, no se muestra la info, he mirado los permisos y los he cambiado de varias formas posible y tampoco se muestra nada, he actualizado muchas veces la página y nada, he probado con 2 navegadores y nada, he visto el código HTML y no hay nada, ni siquiera 1 solo caracter, realmente no entiendo porque no se muestra la info.

En primer lugar, el archivo por supuesto que existe, es más yo leo ese archivo con un programa en Python y lo lee perfectamente, el problema es con PHP.
En segundo lugar, el archivo no está vacío, recién cuando hice las prubas contenía 173 líneas y hace varios días lo he borrado y logicamente ya se han escrito más líneas, desde que lo comencé a probar por supuesto que habían más de 100 líneas, pero acá el problema es que no lee ni siquiera 1 sola línea, ni aún usando la función fgets(), estoy desconcertado  ::)

Aquí dejo el código para que lo vean, seguro está bien, pero bueno, veamos que me dicen ustedes que saben mucho más que yo de PHP.


Código: (PHP) [Seleccionar]
<?php 

$archivoLog 
fopen('/home/usuario/Unreal3.2.10.2/ircd.log''r');

while(!
feof($archivoLog)) {
    
$linea fgets($archivoLog);
    echo 
'Linea: ' $linea '<br />';
}

fclose($archivoLog);

?>

He probado hasta incluso en cambiar las doble comillas "" por comillas simples '' y tampoco funciona.

Para solucionar esto, una posible solución que a mi siempre o casi siempre me funciona, es usar un capturador de errores, en Python cuando algo pasa, uso un capturador de errores y logro saber porque está fallando X cosa, pero en PHP no sé como se hace y no sé si será tomado como un error.

Quiero comentar que he probado el código que he dejado arriba y cuando lo ejecuto en mi navegador por la URL, me salen miles de veces la palabra Linea:, así:

Linea:
Linea:
Linea:
Linea:
Linea:
etc...


o sea... el código se pierde en un bucle infinito, porque lógico el archivo no tiene miles de líneas, además que como dije, lo revisé recién y no llega ni a 200 líneas.

Saludos y muchas gracias!! :)

10
Hola amigos!!! :) Espero que anden muy bien!! :D

Bueno les comento, estoy tratando de hacer un select múltiple para que al hacer doble clic en alguna opción, se abra una ventana con las páginas webs, ejemplo:

Nombre: Argentina
Valor: www.a......

Nombre: España
Valor: www.......

y así sucesivamente, o sea al visualizar el select se puede ver los nombres de los países y al hacer doble clic en algún país se debe abrir una nueva ventana con la página correspondiente de cada país (value="http://www.paginaweb.com/").

Dejo el código que tengo hasta el momento:

Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="es-ar">
<head>
  <title></title>
</head>
<body>
<select size="10" name="MySelect" multiple="multiple"
 ondblclick="window.open(this.value)">
<option value="http://www.paginaweb.com/">Argentina
</option>
</select>
</body>
</html>


he probado de varias formas pero no me funciona, si bien se abre una nueva ventana, pero yo quisiera que sea una ventana normal, no una popup. También he probado como está el código ahora, y no me abre una ventana popuo, sino una normal, pero como nueva pestaña en vez de nueva ventana.

¿De qué manera puedo lograr esto?

Muchas gracias como siempre!!! :)

11
Hola a todos!! :)

Tengo una duda, me gustaría que alguien me dijera sobre estos baneos por ejemplo:

deny from 24.232.0.0/16
deny from 31.187.67.128/27
deny from 32.104.16.0/24
deny from 32.105.57.0/24
deny from 32.105.63.0/24
deny from 46.36.197.201/32
deny from 46.233.68.0/28
deny from 57.74.128.0/19
deny from 64.76.0.0/19
deny from 64.76.32.0/20
deny from 64.76.120.0/21
deny from 64.116.226.0/23
deny from 64.116.231.0/24
deny from 64.215.200.0/24
deny from 65.38.180.0/24
deny from 66.60.0.0/18

esas IPs pueden ser baneadas desde el archivo .htaccess, lo que no entiendo y no sé que significa es esto


/16
/27
/24
/32
/28

etc...

alguien me podría explicar que es eso? no entiendo esa barra y luego esos 2 números, entiendo sobre rangos enteros y rangos desde inicio a fin, pero esto que pregunto siempre tube la duda ya que no se que significa.

Por favor me pueden explicar lo más entendible posible y si ponen algún ejemplo, mejor.

Muchas gracias!!! :D :)

12
Hola amigos!!

Tengo el siguiente problema, no puedo conectarme a una base de datos que he hecho desde el panel de PHPMyAdmin, la base de datos está creada, pude crear una tabla y todo parece que está bien, pero cuando intento conectarme, me sale un error.

Estoy intentando conectarme a la db con Python, me bajé este ejecutable:

MySQL-python-1.2.4.win32-py2.7.exe

desde aquí:

https://pypi.python.org/pypi/MySQL-python/1.2.4

y lo instalé y supuestamente se instaló sin problemas, quiero comentar que estoy siguiente este tutorial:

http://codehero.co/python-desde-cero-bases-de-datos/

la verdad está cláro entenderle y no es tan difícil como pensaba (eso creo jeje), vale aclarar que jamás en mi vida trabajé con base de datos, siempre lo hice desde archivos de texto almacenando ahí la información, pero ahora quisiera aprender un poco, al menos lo básico y me encuentro con un problema que no puedo conectarme a la base de datos.

Utilizo este código:

Código: [Seleccionar]
#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb


try:
    # Establecemos la conexión con la base de datos
    bd = MySQLdb.connect("localhost","user_usuario","Prueba123","user_prueba")

    # Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos
    cursor = bd.cursor()

    # Preparamos el query SQL para obtener todos los empleados de la BD
    sql = "SELECT * FROM EMPLEADO"

    # Ejecutamos el comando
    cursor.execute(sql)
    # Obtenemos todos los registros en una lista de listas
    resultados = cursor.fetchall()
    for registro in resultados:
        nombre = registro[0]
        apellido = registro[1]
        edad = registro[2]
        sexo = registro[3]
        salario = registro[4]
        # Imprimimos los resultados obtenidos
        print "nombre=%s, apellido=%s, edad=%d, sexo=%s, salario=%d" % (nombre, apellido, edad, sexo, salario)

    # Nos desconectamos de la base de datos
    bd.close()
except Exception, e:
    print "Error: ", e


raw_input()

y cuando le ejecuto al programa (al código de arriba), demora masomenos 2 segundos y me lanza este error:

Error:  (2003, "Can't connect to MySQL server on 'localhost' (10061)")

desactivé el Firewall y el Antivirus y no hay caso, sigo sin poder conectarme, la verdad y disculpen la ignorancia, pero no se que más se necesita para poder trabajar con la base de datos MySQL desde Python, yo creo que con solo instalar el programa que indiqué arriba, es suficiente, pero cláro, puedo estar muy equivocado, si es así, por favor diganme cuales son los pasos para instalar todo correctamente, tengo Windows 7.

He leído que hay que tener el puerto 3306 abierto y desde el Firewall de Windows lo he abierto en local, anque aparece como cerrado cuando lo intento escaner con la IP local 127.0.0.1

Yo instalé un par de librerías desde el programa ejecutable (como el que comenté más arriba) y siempre se instaló bien y las librerías me funcionan bien.

Espero que por favor me ayuden.

Muchas gracias de antemano!! :)

PD: Acabo de instalar MySQL desde www.mysql.com y me bajado e instalado el programa que está aquí http://dev.mysql.com/downloads/file.php?id=455548 y el puerto 3306 sigue cerrado :S además sigue sin poder conectarse.

13
Bloqueos Masivos v0.1


Hola Comunidad!! :) :)

Hoy vengo a traerles un excelente programa que he creado, el mismo sirve para checkear las IPs que conectan a nuestro Sitio web/Foro/Blog, etc.

La función de este programa es checkear todas las IPs que se encuentren en el archivo Log de Apache haciendo un DNS a cada IP que hizo la petición a nuestro sitio, el programa hará un DNS a la DNSBL sfs.dnsbl.st para saber si esa IP que conectó a nuestro sitio, es un Bot/Proxy/Sock/Proxy web anónimo/IP de VPN Privada/IP de Dedicado, etc., por ejemplo en el caso de las VPN's Privadas y de las IPs de los Dedicados, muchas veces usan esas IPs para hacer ataques, enviar mails de spam masivamente, infectar máquinas, atacar con DDoS, o también pueden usarlas para una Página Online Anonymous Web Proxy, que muchas veces estas webs usan IPs de dedicados/VPN's para enmascarar a las IPs de las personas que usen el Servicio de anonimato.

Por esas razones, cargan las IPs en las Listas Negras, pero yo solamente uso la DNSBL sfs.dnsbl.st, porque es la mejor sin dudas.

sfs.dnsbl.st es una API alternativa para su lista negra de IPs basada en DNSBL/RBL.

Eso es todo, quiero comentar que yo he checkeado mi Log de Apache con 13.602 IPs y el programa detectó 248 Bots, el checkeo solo duró unos minutos.
Tengan en cuenta que este programa no checkeará las IPs que ya ha checkeado, esto evita que vuelva otra vez a analizar una IP ya checkeada.

Quiero aclarar ya que muchas personas no me conocen, que este programa es totalmente legal y está licenciado, yo soy una persona que siempre estoy en contra de los ataques y de las actitudes maliciosas de muchas personas, pueden checkear el programa con el Antivirus que quieran y si encuentran algún fallo o algún problema, me informan por favor que yo voy a solucionarlo, hasta ahora todo funcionó perfecto, pero por ahí puede que alguien tenga una duda o tenga un fallo en el programa, y yo lo ayudaré y trataré de solucionarlo como pueda.

Bueno finalizo el Tema, pueden descargar Bloqueos Masivos v0.1 y también pueden ver más información de como usar este programa y además algunas imágenes del mismo en acción en este Tema:

http://www.argentinairc.net/Foro/index.php?topic=298.msg1039#msg1039



Ojalá esto ayude a combatir muchos bots, les aseguro como programador que soy, que esta herramienta, les será de muchísima ayuda ya que Stop Forum Spam es una de las mejores Webs de lucha contra Bots e IPs maliciosas.

Saludos y espero comentarios!!!


Muchas gracias a AprenderAProgramar.com por este espacio.

14
Hola amigos!!!

Tengo una duda, hay una forma de dejar saltos de línea en PHP, es como un claúsula que me la he olvidado, era algo como SPL, SPOL, algo así, y eso podía dejar un salto de línea, en vez de usar el \n o el <br /> o el nl2br

Saludos!!

15
Hola a todos.

Tengo un problema al tratar de instalar una librería en Python, la misma se llama gnupg, la misma sirve para cifrar y descifrar información que tienen los archivos de texto por ejemplo, entre tantas cosas que hace, porque hace más todavía.

Bueno el tema es que no se porque no se ha instalado correctamente, he seguido este pequeño tutorial, que no es eso, es solo el paso que se hace pasa instalarla:

https://bitbucket.org/vinay.sajip/python-gnupg

y aún así, no se instala bien, cuando quiero importarla, me sale este error:



no se porque me da ese error, cuando instalé la librería requests, se ha instalado sin problemas, pero esta no se porque razón no se instala como debe.
La verdad he andado por entero, encima me remil confunden, porque uno te dice esto y el otro, otra cosa, vas a ver otra web y otra cosa distinta, ya no se que más hacer, la necesito instalar, tengo todo listo para instalar, pero no me da error cuando la instalo, pero tampoco funciona, ya que ni siquiera puedo importarla, me confundo de instalación de win con linux, porque esta gente que hace las explicaciones mezcla todo, es difícil entenderles encima está en inglés.

Bueno esto es algo que me pone los pelos de punta, porque supuestamente todo debería ser fácil y no dar problemas, y me está dando problemas, pido ayuda a ver si alguien me puede ayudar al menos a orientarme para poder instalarla. Ya he intentado de todo, he andado por varias webs y no hay caso.

Espero que me puedan ayudar.

Muchas gracias por adelantado.

Dejo aquí las webs que pueden ayudar:

https://pypi.python.org/pypi/gnupg

http://roldandvg.blogspot.com.ar/2014/04/cifrar-y-descifrar-archivos-con-python.html

https://pythonhosted.org/python-gnupg/

PD: Este paquete es el que he intentado instalar:

gnupg-1.3.2.zip





16
Hola compañeros!!!

Bueno quiero agradacerles nuevamente y felicitarlos por el saludo y la educación que siempre tienen, me encanta leer ese "Hola" al comienzo de cada mensaje de su primer mensaje en un tema, nunca pierdan eso, demuestren educación y respeto así como lo hacen, porque hay tipos como yo que observan bien esas cosas.

Bueno voy a dejar una librería, es algo simple que hice en C++, digamos que lo mejor que he hecho, pero nunca la he terminado, yo quería que fuese una librería con muchas o varias funciones, como métodos digamos, pero ya abandoné C++, es un gran labor remar con eso y además no pretendo hacer programas y menos trabajar ($$$$) con C++.

Esta librería tiene una explicación y varios ejemplos de cada función.

Primero cargamos la librería:

Código: [Seleccionar]
#include "Funciones.h"

se llama así Funciones.h

y aquí dejo el código:

Código: [Seleccionar]
#include <iostream>
#include <windows.h>
#include <vector>
#include <stdio.h>
#include <fstream>

using namespace std;

int Cuenta(string s, const char Separadorr, int &TotalChars) {
    for (int i = 0; i < s.size(); i++)
        if (s[i] == Separadorr) TotalChars++;
}

void split(string Linea, char Separador, vector<string> &TempBuff, int &TotalVector) {
    TempBuff.resize(0);
    TotalVector = 0;
    int Nums = -1;
    int NumPos = -1;
    int ValorNum = 0;
    int TotalChars = 0;
    int TotalEspacios = Linea.length();
    string Valor;
    Cuenta(Linea, Separador, TotalChars);
    if (TotalChars != 0) {
        while (Nums < TotalChars) {
            Nums++;
            ValorNum = Linea.find(Separador, NumPos + 1);
            Valor = Linea.substr(NumPos + 1,ValorNum);
            Valor = Valor.substr(0, Valor.find_first_of(Separador));
            TempBuff.push_back(Valor);
            NumPos = ValorNum;
            TotalEspacios++;
        }
        TotalVector = TempBuff.size();
    }
    else {
        //TempBuff.push_back(Linea.substr(0, Linea.find_first_of(Separador)));
        TotalVector = 0;
    }
}

void Contar(string &Cadena, const char Caracter, int &NumChars) {
    NumChars = 0;
    for(int IncNums = 0; IncNums <= Cadena.size(); IncNums++) {
        if (Cadena[IncNums] == Caracter) NumChars++;
    }
}

void Multi(string &Texto, int TotalRep) {
    string Texto2 = Texto;
    for(int SumaNums = 1; SumaNums < TotalRep; SumaNums++) {
        Texto += Texto2;
    }
}

void LeeLinea(const char *NombreArchivo, string &DatoLinea, int NumLinea) {
    char Linea[1280];
    ifstream Lectura(NombreArchivo);
    Lectura.getline(Linea, 1280);
    int CuentaNum = 1;
    while (!Lectura.eof()) {
        if (CuentaNum == NumLinea) {
            DatoLinea = Linea;
            Lectura.close();
            break;
        }
        CuentaNum++;
        Lectura.getline(Linea, 1280);
    }
    Lectura.close();
}

y aquí su ayuda:

    /**
    Uso de la función split(VariableString, *"Caracter", NombreVector, TamañoVector)
    Descripción, esta función es muy parecida a la función split() que utiliza Python,
    En esta función split() se deben pasar por parámetros los valores:
    VariableString, *"PunteroDeCaracter", NombreDelVectorTipoString, VariableInt


    Ejemplo 1:

    string Palabra = "Hola feliz dia";
    vector<string> TempBuff(0);
    int TotalVector;
    split(Palabra, *" ",  TempBuff, TotalVector);

    cout << TotalVector << endl; // Devuelve tamaño del vector: 3
    cout << TempBuff[0] << endl; // Devuelve: Hola
    cout << TempBuff[1] << endl; // Devuelve: feliz
    cout << TempBuff[2] << endl; // Devuelve: dia


    Ejemplo 2:

    string Palabra2 = "Programador_de_C_mas_mas";
    int TotalVector2;
    vector<string> TempBuff2(0);
    split(Palabra2, *"_",  TempBuff2, TotalVector2);

    cout << TotalVector2 << endl; // Devuelve el tamaño del vector: 4
    cout << TempBuff2[0] << endl; // Devuelve: Programador
    cout << TempBuff2[1] << endl; // Devuelve: de
    cout << TempBuff2[2] << endl; // Devuelve: C
    cout << TempBuff2[3] << endl; // Devuelve: mas
    cout << TempBuff2[4] << endl; // Devuelve: mas

    NOTA IMPORTANTE: Se puede usar el mismo nombre del vector "TempBuff", también
    la variable string "Palabra" y la variable tipo entero "TotalVector", por lo que
    no es necesario volver a crear ni las variables, ni el vector. No obstante se puede
    crear otro vector y otras variables con otros nombres y pasarlos como parámetros
    en la función split().

    Otro punto a tener muy en cuenta, es que, antes de poder comparar un cierto valor del
    vector de una cierta posición con una variable string, es importante hacer una
    comparación que el vector sea mayor o igual a la posición que se va a comparar, esto
    evitará un fallo de segmentación / violación de memoria.

    Ejemplo:

    if (TotalVector >= 4) {
        cout << "Si, el vector tiene 4 o más valores dentro de él" << endl;
        cout << "Ahora se pueden ejecutar las instrucciones" << endl;


    ---------------------------------------------------------------------------------------
    Uso de la función Contar(VariableString, *"Caracter", VariableInt)


    Ejemplo 1:

    int NumChars = 0;
    string Saludo = "H-o-l-a a-m-i-g-o-s";
    Contar(Saludo, *"-", NumChars);
    cout << NumChars << endl; // devuelve: 8


    Ejemplo 2:

    string Saludo = "H o l a a m i g o s";
    Contar(Saludo, *"-", NumChars);
    cout << NumChars << endl; // devuelve: 9


    Ejemplo 3:

    string Saludo = "Hola";
    Contar(Saludo, *"_", NumChars);
    cout << NumChars << endl; // devuelve: 0


    ---------------------------------------------------------------------------------------
    Uso de la función Multi(VariableString, Int)


    Ejemplo 1:

    int main() {
    string MiTexto = "hola ";
    Multi(MiTexto, 10);
    cout << MiTexto << endl; // devuelve: hola hola hola hola hola hola hola hola hola hola



    --------------------------------------------------------------------------------------
    Uso de la función LeeLinea(ConstanteChar, VariableString, Int)


    Ejemplo 1:

    int main() {
        const char *NombreArchivo = "Prueba.txt";
        string DatoLinea1;
        LeeLinea(NombreArchivo, DatoLinea1, 1);
        cout << DatoLinea1 << endl; // devuelve: El valor de la línea 1
    }


    Ejemplo 2:

    int main() {
        const char *NombreArchivo = "Prueba.txt";
        string DatoLinea1;
        LeeLinea(NombreArchivo, DatoLinea1, 7);
        cout << DatoLinea1 << endl; // devuelve: El valor de la línea 7
    }


    Ejemplo 3:

    int main() {
        const char *NombreArchivo = "Prueba.txt";
        string DatoLinea1;
        LeeLinea(NombreArchivo, DatoLinea1, 43);
        cout << DatoLinea1 << endl; // devuelve: El valor de la línea 43
    }

    */


Espero que a alguien le sirva!!

PD: Todas las funciones funcionan perfectamente, lo que no he terminado es seguir haciendo más de éstas funciones, pero las que ya están aportadas, si funcionan sin problemas.

Saludos!

17
Hola nuevamente, bueno haciendo pruebas y pruebas, lo he terminado al programa, este programa lista los últimso 25 mensajes del Foro C, C++, Java, Visual Basic, HTML, PHP, CSS, Javascript, Joomla, MySql y más y otros datos más que haré conocer.

Primeramente quiero aclarar que este programa que hice es completamente de mi autoría, es decir que yo lo hice desde 0, digo esto porque me gusta poner en mis códigos, los créditos correspondientes, me parece lo más justo y lógico.

Bueno este programa utiliza la interfaz gráfica wxPython y muestra los siguientes datos:

Tema  |  Autor  |  Fecha del último mensaje  |  Último msj por  |  Respuestas  |  Visitas

La función y el uso es simple, primero guardamos todo el código en un archivo nuevo con la extensión .py o .pyw (.pyw sirve para que no se abra la ventana de la consola, te lo recomiendo), luego abrimos el programa y veremos un menú con el nombre Opciones que contiene los siguientes Items:

Ver Temas
Autor
Salir


Al presionás el sub menú Ver Temas, se listará en la ventana del programa todos los datos recién mencionados.

Si presionás el sub menú Autor, verás mi Nombre y mi Nick.

Si presionás el sub menú Salir, simplemente se cierra el programa.



¿Cómo funciona?

El programa utiliza una conexión Socket que conecta a este Foro e ingresa directamente al Foro C, C++, Java, Visual Basic, HTML, PHP, CSS, Javascript, Joomla, MySql y más, configuro las cabeceras headers para que el Foro no lo detecte como un programa automático, sino como si fuese que se está ingresando desde el navegador Internet Explorer, luego mediante métodos, consigo sacar la información que necesito y la voy agregando al Panel y eso es todo.

No utilizo RegExp porque no las sé usar, además nunca me importaron y ni siquiera me hicieron falta, así que por eso no las uso, pero si algún día necesito de ellas, las estudiaré, pero con métodos hasta ahora siempre me ha sido suficiente.

Bueno quiero aclarar que me ha llevado un tiempo modificarlo al programa ya que estaba creado para una plataforma de otro Foro, osea de VBulletin, este programa como el otro que aporté hace unas horas, lo he aportado en un Foro que ni siquiera gracias me han dicho, es más no terminé bien en ese Foro debido a que una vez le pedí a un moderador que eliminara un mensaje mío porque no quería compartir ese código, pero lamentablemente lo tenía que poner para poder recibir ayuda, así que este Moderador razpeitia de ForosDelWeb se negó a borrar ese código, así que abandoné ese Foro y no voy a volver nunca más, no me gusta cuando la gente hace esas cosas, el código era mío, yo lo había hecho y no merecía que me hagan eso, yo como autor del código tengo el derecho de decidir sobre él, además era un mensjae muy reciente, bueno yo en mi Foro jamás le haría eso a un usuario.
El tema que en ese Foro ni siquiera "gracias" me dijeron por mis aportes, pero bue........ una larga historia para contarles todo lo que me ha pasado en mi vida virtual, cierro el tema este ahora, no viene al caso.

Bueno compañeros, espero que este programa les funcione, hasta ahora funciona y funcionará perfectamente bien, tengan en cuenta que el programa utiliza el código HTML de este Foro y si ese código se altera por alguna modificación, ya sea por parte de los encargados de la web o por alguna modificación de la plataforma, el código podría muy posiblemente fallar, pero practicamente es inmune, ya que hace mucho tiempo que sigue igual en ese aspecto la plataforma SMF.

Pueden compilar este programa a ejecutable, les aconsejo Py2Exe, aunque probé PyInstaller y está muy bueno, pero hay mucha más documentación de Py2Exe.

Algo más que comentarles es que este código tiene 100 líneas, yo he llegado a hacer programas muchos más complejos, como uno de 1.400 líneas que no he podido terminar porque la web ha cambiado su contenido.
Aquí pueden ver una imágen de este programa que hice que se llama Buscador de Puertos TCP - versión 0.1



Ese no es el programa que no pude terminar, el que yo quería terminar era un programa para enviar mensajes gratis a celulares con agenda personal + historial + detector de compañía de celulares, es decir que con ese programa podés saber a que empresa pertenece un número de celular + Configuración de fuente en la caja del mensaje + configuración de color y negrita en la caja del mensaje + ingreso de mayúsculas automáticamente + MultiThreads para evitar que el programa se congele + mensajes guardados, etc.

Bueno también quiero aclarar que para poder hacer funcionar el programa que aporté, van a necesitar el Paquete de Librerías wxWidgets en C++ que es wxPython, aquí les dejo la web oficial:

http://www.wxPython.org/

La versión de wxPython en la que fué probado el programa es en la 2.8 + Python 2.7.5

Aquí está el código:


Código: [Seleccionar]
# -*- coding: utf-8 -*-
# wx.AprenderaProgramar

# Nombre Autor: Daniel Delgado
# Nick Autor: Príncipe_Azul
# Foro de Programación General: http://www.ArgentinaIRC.net/Foro


import wx, urllib2

Navegador = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
ConfigNavegador = {"User-Agent": Navegador}
URLSolicitud = urllib2.Request("https://www.aprenderaprogramar.com/foros/index.php?board=2.0", headers=ConfigNavegador)

class AprenderaProgramar(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, style=wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN | wx.RESIZE_BORDER)
        self.Panel = wx.Panel(self, -1)
        MenuPrograma = wx.Menu()
        MenuOpcion = wx.MenuBar()
        MenuPrograma.Append(1, "Ver Temas", "")
        MenuPrograma.Append(2, "Autor", "")
        MenuPrograma.Append(3, "Salir", "")
        MenuOpcion.Append(MenuPrograma, "Opciones")
        self.SetMenuBar(MenuOpcion)
        wx.EVT_MENU(self, 1, self.MostrarTemas)
        wx.EVT_MENU(self, 2, self.Autor)
        wx.EVT_MENU(self, 3, self.Salir)
        Fuente = wx.Font(11, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Verdana")
        self.Lista = wx.ListCtrl(self.Panel, -1, pos=(15,15), size=(1100,650), style=wx.LC_REPORT)
        self.Lista.SetFont(Fuente)
        self.Lista.InsertColumn(0, "Tema", width=538)
        self.Lista.InsertColumn(1, "Autor", width=165)
        self.Lista.InsertColumn(2, u"Fecha del último mensaje", width=290)
        self.Lista.InsertColumn(3, "Ultimo Msj por", width=160)
        self.Lista.InsertColumn(4, "Respuestas", width=110)
        self.Lista.InsertColumn(5, "Visitas", width=85)
        self.Redimensionador = wx.BoxSizer(wx.VERTICAL)
        self.Redimensionador.Add(self.Lista, proportion=1, flag=wx.ALL|wx.EXPAND, border=15)
        self.Panel.SetSizer(self.Redimensionador)

        self.Show()
        self.Maximize()

    def MostrarTemas(self, event):
        Web_HTML = urllib2.urlopen(URLSolicitud)
        Codigo_HTML = Web_HTML.read()
        Web_HTML.close()
        Ordenador = 0
        Ordenador2 = 0
        Ordenador3 = 0
        Ordenador4 = 0
        Ordenador5 = 0
        Ordenador6 = 0
        for Linea in Codigo_HTML.splitlines():
            if ' <span id="msg_' in Linea:
                Tema = Linea[Linea.find('.0">') + 4:]
                Tema = Tema.replace("</a></span>", "")
                self.Lista.InsertStringItem(Ordenador, Tema)
                Ordenador += 1
            elif ' <p>Iniciado por' in Linea:
                Autor = Linea[Linea.find('">') + 2:]
                Autor = Autor.replace("</a>", "")
                self.Lista.SetStringItem(Ordenador2, 1, Autor)
                Ordenador2 += 1
            if ' <strong>' in Linea and "Hoy" in Linea:
                Fecha = Linea[Linea.find('">') + 2:]
                Fecha = Fecha.replace("<strong>", "").replace("</strong>", "").replace("<br />", "").replace("\t", "")
                self.Lista.SetStringItem(Ordenador3, 2, Fecha)
                Ordenador3 += 1
                #print Fecha
            if ' ' in Linea and '<br />' in Linea and not "Hoy" in Linea and Ordenador3 <= 24 and ", " in Linea and ":" in Linea:
                Fecha2 = Linea.replace("<br />", "").replace("\t", "")
                self.Lista.SetStringItem(Ordenador3, 2, Fecha2)
                Ordenador3 += 1
            if " de <a " in Linea:
                UltimoMsjPor = Linea[Linea.find('">') + 2:]
                UltimoMsjPor = UltimoMsjPor.replace("</a>", "")
                self.Lista.SetStringItem(Ordenador4, 3, UltimoMsjPor)
                Ordenador4 += 1
            if " " in Linea and " Respuestas" in Linea:
                NumResp = Linea.split(" ")[0]
                self.Lista.SetStringItem(Ordenador5, 4, NumResp)
                Ordenador5 += 1
            if " " in Linea and " Vistas" in Linea:
                NumVisitas = Linea.split(" ")[0]
                self.Lista.SetStringItem(Ordenador6, 5, NumVisitas)
                Ordenador6 += 1


    def Autor(self, event):
        Autor_Daniel = wx.MessageDialog(self, u"Lector de los últimos 25 Temas del Foro \"C, C++, Java, Visual Basic, HTML, PHP, CSS, Javascript, Joomla, MySql y más\"", u"Autor: Daniel Delgado (Príncipe_Azul)", wx.OK | wx.ICON_INFORMATION)
        Autor_Daniel.ShowModal()
    def Salir(self, event):
        wx.Exit()

Foro = wx.App()
AprenderaProgramar(None, -1, u"C, C++, Java, Visual Basic, HTML, PHP, CSS, Javascript, Joomla, MySql y más")
Foro.MainLoop()

Y aquí una captura de como se vería luego de Listar los Temas:




Bueno espero que les sirve, les mando un abrazo y buena suerte para todos!!! :) :)



18
Hola a todos!

Bueno hoy voy a hacer este pequeño aporte al Foro, este programa escrito en Python verifica si el archivo de ejemplo Noticias.txt existe, en caso afirmativo lee el archivo e imprime unas cuantas líneas, en caso contrario de que el archivo no exista, el programa lo informará por la consola.

Bueno esto lo dejo porque he leído que en muchos foros los usuarios piden saber si existe alguna forma de leer las líneas de archivo sin usar ningún bucle, ni for ni while, yo la verdad no comparto ese pensar, ya que el bucle for como el while han sido creados justamente para hacer eso, un bucle, una vuelta tras otra, para eso ha sido creado y debe usarse, de igual manera dejo este programa, no hace falta explicar más nada, ya que el mismo tiene líneas comentadas:

Código: [Seleccionar]
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os # Importamos la librería "os"

if (os.path.exists("Noticias.txt") == True): # Comprueba si existe el archivo Noticias.txt
    Noticias = open("Noticias.txt", "r") # Leemos el archivo en modo texto
    Contenido_Noticias = Noticias.readlines() # Guardamos en la variable Contenido_Noticias todas las líneas del archivo Noticias.txt
    Noticias.close() # Cerramos el archivo: NUNCA hay que olvidarse de esto
    print Contenido_Noticias[4] # imprimimos la línea 5
    print Contenido_Noticias[13] # imprimimos la línea 14
    print Contenido_Noticias[28] # imprimimos la línea 29
    print Contenido_Noticias[240] # imprimimos la línea 241
    print Contenido_Noticias[924] # imprimimos la línea 925

else:
    print "No existe el archivo Noticias.txt"


raw_input()


Aclaro, que el índice del archivo, osea la primer línea, siempre es 0, no 1.
¿No lo entendés? Bueno prestá atención a este ejemplo:

Mostramos por consola la primer línea del archivo:

Código: [Seleccionar]
    print Contenido_Noticias[0] # imprimimos la línea 1

Buena suerte!! :)

19
Hola, muy buenas a todos!!!

Primero los quiero felicitar por su excelente Foro que tienen, se ve el trabajo en el mismo y realmente se ve mucha educación y ayuda a las personas que necesitan soporte.
También quiero agradecerles por poner en pié esta Comunidad que ayudará a mucha gente en esto de la Programación.

Mi nombre es Daniel, soy programador de mSL (mIRC Scripting Language), todavía aprendíz en Python, aunque he echo pequeños programas en Python con interfaz gráfica y también Bots para el IRC.
Durante toda mi vida en la informática he aprendido a ir solo en este barco, tube muy poca colaboración de las personas, así que todo lo que yo he llegado a hacer, como también todo lo que he aprendido de programación, es gracias a mi y algunas personas que me ayudaron.

Bueno mi vida en la Red e internet no ha sido muy buena, es largo de contar, pero bueno este no es el momento de hacerlo, solo quiero decirles que lo felicito a Alex Rodríguez y a Ogramar que siempre los veo ayudando a los demás, bueno también agradezco al Administrador del Foro y a todos los ayudantes del mismo.
Yo actualmente tengo un Foro de Programación General, también tengo un Servidor IRC de chat y bueno hago lo que más puedo dentro de mis recursos y conocimientos, trato de ayudar en la medida que puedo.

También quiero felicitarlos por la buena educación que tienen, veo que jamás les falta el "hola", eso también lo hago en mi Foro y realmente es muy agradable siempre leer un saludo, generalmente los Moderadores de los Foros no saludan a las personas, bueno yo a pesar de ser admin de mi Foro, siempre lo hago y veo que aquí también lo hacen y eso es realmente educación.

Encontré este Foro porque había buscado en Google por "Foro Programacion General" y bueno aquí estoy jajaja, aunque hace varios días que lo vengo mirando y me ha parecido un sitio bastante tranquilo, veo que han hecho cursos de varios lenguajes y si no me equivoco, también tienen una revista, muy bueno, en hora buena!!!! :)

Yo soy una persona como ustedes, que les importa hacer el bien y no dañar a otras personas, eso me encanta, así me gusta, que sean buena gente.

También quería registrarme para comentarles algo, que más que nada, sería un pequeño aporte, como yo he ayudado en varios Foros durante mi vida virtual, actualmente ayudo y me ayudan en Simple Machines, que es la plataforma que usa este Foro, bueno ahí aprendí bastante y me ha servido de mucho, quiero darles este pequeño aporte, que no lo saben porque me di cuenta que se las ingenian para poner las etiquetas, pero yo creo que no saben esto que les mostraré.

Cuando ustedes los Moderadores o quien fuese, quiera usar etiquetas de ejemplo, pero que no quisiera que el Foro las tome como tal, sino que las tome como si las ignorara, esto se consigue haciendo así por ejemplo:

[img]http://www.aprenderaprogramar.com/foros/Themes/default/images/abordo.jpg[/img]

vamos con otro ejemplo más:

[code]print "Hola mundo!\r\n"[/code]

Bueno jajaja ahora ustedes se preguntará como hice eso, muy fácil, utilizando las etiquetas "nobbc", por ejemplo con lo de la imágen sería así:

[nobbc][img]http://www.aprenderaprogramar.com/foros/Themes/default/images/abordo.jpg[/img][/nobbc]

Listo salió correctamente!!!! Si ustedes ingresan lo que acabo de escribir entre las etiquetas "nobbc", les saldrá el enlace de la imágen con las etiquetas IMG y por supuesto no se verá la imágen, pero si las etiquetas que deben a sus laterales.
Bueno este era el pequeño aporte, que seguro les va a servir.

Quiero comentarles que tienen mucha suerte con su Foro, veo que muchos o mejor dicho, el %97 de sus usuarios, dejan código!!!!!! para que los ayuden!!! jaja Dios mio, en mi Foro lamentablemente no pasa eso, así que a mis usuarios les tengo que hacer el código desde cero, la gran mayoría de veces que piden ayuda y eso es bastante cansador, además aportan muy poco y solo algunos, así que es mucho trabajo, también aclaro que en mi Foro, ayudo por el momento, yo solo.

Bueno mis queridos compañeros, espero que esto no les haya parecido algo loco o algo fuera de lugar, soy una persona bastante tranquila y un tipo que tratá de aprender con lo que tiene, solo trato de aprender un poco más, también soy de escribir mucho y de ayudar lo mejor que puedo.

Que bueno que trabajen en equipo, yo nunca tube esa posibilidad y aún no la tengo.

Les deseo lo mejor a todos, buena suerte y sigan así, haciendo el bien, que el día de mañana, tendrán un buen lugar donde estar, muchas gracias por la forma tan extensa y explicativa que tienen para ayudar y gracias por todo lo que hacen por la gente que necesita ayuda.

Yo si puedo ayudar en algo, lo haré, la verdad que lo único que se es de Python y hasta ahí nomas, no mucho, y una vez entré en el mundo de C++, me lo habían dicho y realmente me asusté, una persona de mucho conocimiento sobre lenguajes de programación me dijo que C++ era un mostruo inmenso con millares de cosas a tener en cuenta!!! jajaja realmente si es impresionante, tiene de todo, pero prefiero Python así que abondoné lo que iba aprendiendo ya que lo vi bastante complejo y además no iba a trabajar de programador de C++, aunque dentro de todo, la llevaba bien y estaba aprendiendo, pero prefiero algo más fácil, en C++ hay que crear muchas funciones, porque muchas no existen, pero es un hermoso lenguaje y muy completo, a pesar de las funciones que le falta, como por ej el .split() de Python.

Bueno amigos, me despido y les deseo lo mejor, mucha suerte y éxitos!!!
Si desean, si lo quieren, pueden mirar mi Foro, por supuesto que les pasaré el enlace por privado y solo a Moderadores o superior, no vengo a hacer spam, por eso, solo a Moderadores y que realmente me lo pidan.

:) Un fuerte abrazo y buena suerte!! :)

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".