viernes, 13 de agosto de 2010

Cómo bloquear MSN Messenger


Buscando en los foros, he visto varios puestos acerca de cómo bloquear a MSN Messenger. Aquí es lo que hice y ha sido bien trabajando para clientes de relacionados con el Msn y MSN (es decir: Trillian).

Crear un conjunto de reglas:
Conectado con SSH o consola a su servidor de Mikrotik, utilizando el comando como este:

[admin] ip firewall filter add chain=forward protocol=tcp dst-address=207.46.110.0/24 action=drop log=yes comment="MSN Messenger" disabled=no

El conjunto de reglas que utilicé en mi escenario fueron los siguientes:
14 X ;;; MSN Messenger

chain=forward protocol=tcp dst-port=1863 action=drop
15 X ;;; MSN Messenger

chain=forward dst-address=207.46.110.0/24 protocol=tcp action=drop
16 X ;;; MSN Messenger

chain=forward protocol=tcp dst-port=5190 action=drop
17 X ;;; MSN Messenger

chain=forward protocol=tcp dst-port=6901 action=drop
19 X ;;; MSN Messenger

chain=forward protocol=tcp dst-port=6891-6900 action=drop
20 X ;;; MSN Messenger

chain=forward protocol=tcp dst-port=7001 action=drop
21 X ;;; MSN Messenger

chain=forward dst-address=207.46.27.0/24 protocol=tcp action=drop
22 X ;;; MSN Messenger

chain=forward dst-address=207.46.111.0/24 protocol=tcp action=drop

miércoles, 4 de agosto de 2010

Programacion en C# de Forma Dinamica

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OrdenBurbujaDinamico
{
class Program
{
static void Main(string[] args)
{
//Declaramos una Variable String para Mostrar Los Letreros
String cadena;
int Numeros;

Console.WriteLine("Inserta Cuantos Numero Deseas Ordenar");
Numeros = int.Parse(Console.ReadLine());

int[] Contenedor = new int[Numeros];


for (int i = 1; i < Numeros + 1; i++)
{
Console.WriteLine("\nInserta el " + i + " Numero Porfavor: ");
Contenedor[i - 1] = int.Parse(Console.ReadLine());


}

//Mostramos los Numeros en el Orden del Arreglo
cadena = "\n\nLos Numeros Introducidos son:\n";

for (int i = 0; i < Contenedor.Length; i++)
{
cadena += " " + Contenedor[i];
}


//Llamamos a nuestro Metodo Ordenar Burbuja_Acendente
cadena += "\n\nLos Numeros Ordenados en Forma Ascendente son:\n";

OrdenBurbuja_Ascendente(Contenedor);

//Empieza a Recorrer y acomodar los numeros en forma acendente
for (int i = 0; i < Contenedor.Length; i++)
{
cadena += " " + Contenedor[i];
}
cadena += "\n\nLos Numeros Ordenados en Forma Descendente son:\n";

//Llamamos a nuestro Metodo OrdenBurbuja_Desendente
ordenBurbuja_Descendente(Contenedor);

//Empezar a ordenar desendentemente
for (int i = 0; i < Contenedor.Length; i++)
{
cadena += " " + Contenedor[i];
}
Console.WriteLine(cadena);
Console.ReadLine();
}

//Metodo de Ordenacion Ascendente
static void OrdenBurbuja_Ascendente(int[] b)
{
for (int pasadas = 1; pasadas < b.Length; pasadas++)
{
for (int i = 0; i < b.Length - 1; i++)
{
if (b[i] > b[i + 1])
{
//Llamamos a NUestro metodo Intercambiar
intercambiar(b, i);
}
}
}
}

//Metodo de Ordenacion Descente
static void ordenBurbuja_Descendente(int[] b)
{
for (int pasadas = 1; pasadas < b.Length; pasadas++)
{
for (int i = 0; i < b.Length - 1; i++)
{
if (b[i] < b[i + 1])
{
//Llamamos a Nuestro metodo Intercambiar
intercambiar(b, i);
}
}
}
}

//Metodo Intercambiar
static void intercambiar(int[] c, int primero)
{
int temp;
temp = c[primero];
c[primero] = c[primero + 1];
c[primero + 1] = temp;
}
}

}

Programacion en C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OrdenBurbujaEstatico
{
class Program
{
static void Main(string[] args)
{
//Declaramos una Variable String para Mostrar Los Letreros
String cadena;

//Creamos Nuestro Arreglo Estatico con 10 Numeros
int[] Contenedor = { 10, 6, 3, 1, 4, 7, 5, 2, 9, 8 };
cadena = "Los Numeros Desordenados son:\n";

//Mostramos los Numeros en el Orden del Arreglo
for (int i = 0; i < Contenedor.Length; i++)
{
cadena += " " + Contenedor[i];
}

cadena += "\nLos Numeros Ordenados en Forma Ascendente son:\n";

//Llamamos a nuestro Metodo Ordenar Burbuja_Acendente
OrdenBurbuja_Ascendente(Contenedor);

//Empieza a Recorrer y acomodar los numeros en forma acendente
for (int i = 0; i < Contenedor.Length; i++)
{
cadena += " " + Contenedor[i];
}
cadena += "\nLos Numeros Ordenados en Forma Descendente son:\n";

//Llamamos a nuestro Metodo OrdenBurbuja_Desendente
ordenBurbuja_Descendente(Contenedor);

//Empezar a ordenar desendentemente
for (int i = 0; i < Contenedor.Length; i++)
{
cadena += " " + Contenedor[i];
}
Console.WriteLine(cadena);
Console.ReadLine();
}

//Metodo de Ordenacion Ascendente
static void OrdenBurbuja_Ascendente(int[] b)
{
for (int pasadas = 1; pasadas < b.Length; pasadas++)
{
for (int i = 0; i < b.Length - 1; i++)
{
if (b[i] > b[i + 1])
{
//Llamamos a NUestro metodo Intercambiar
intercambiar(b, i);
}
}
}
}

//Metodo de Ordenacion Descente
static void ordenBurbuja_Descendente(int[] b)
{
for (int pasadas = 1; pasadas < b.Length; pasadas++)
{
for (int i = 0; i < b.Length - 1; i++)
{
if (b[i] < b[i + 1])
{
//Llamamos a Nuestro metodo Intercambiar
intercambiar(b, i);
}
}
}
}

//Metodo Intercambiar
static void intercambiar(int[] c, int primero)
{
int temp;
temp = c[primero];
c[primero] = c[primero + 1];
c[primero + 1] = temp;
}
}

}