<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Centro de estudios en internet - Aprendo en casa &#187; ejercicios</title>
	<atom:link href="http://www.aprendoencasa.com/index.php/tag/ejercicios/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aprendoencasa.com</link>
	<description>Centro de estudios online con cursos gratuitos de internet, sistemas, diseño, web, programación, xhtml, windows, etc.</description>
	<lastBuildDate>Tue, 01 Jun 2010 19:57:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Practicas y ejercicios de programaci&#243;n en c ( 11 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-11/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-11/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 19:52:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2010]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[soluciones]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[estudios online]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[Sistemas]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-11/</guid>
		<description><![CDATA[2º Programa que lea dos números por teclado y calcule el valor de la suma, resta producto y división. Solución 1. // Inclusion de librerias #include &#60;stdio.h&#62; #include &#60;stdlib.h&#62; &#160; // Funcion principal int main(int argc, char *argv[]) { &#160; // Definicion de variables &#160; int A; &#160; int B; &#160; long int Suma; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "5930672695";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
     </p>
<p><strong>2º Programa que lea dos números por teclado y calcule el valor de la suma, resta producto y división.</strong></p>
<p><strong>Solución 1.</strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p>// Inclusion de librerias</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;stdlib.h&gt;</p>
<p>&#160;</p>
<p>// Funcion principal</p>
<p>int main(int argc, char *argv[])</p>
<p>{</p>
<p>&#160; // Definicion de variables</p>
<p>&#160; int A;</p>
<p>&#160; int B;</p>
<p>&#160; long int Suma;</p>
<p>&#160; int Resta;</p>
<p>&#160; float Division;</p>
<p>&#160; long int Multiplicacion;</p>
<p>&#160;</p>
<p>&#160; // Solicitud de datos por consola</p>
<p>&#160; printf(“Numero A ……: “);</p>
<p>&#160; scanf(“ %d”,&amp;A);</p>
<p>&#160; printf(“Numero B ……: “);</p>
<p>&#160; scanf(“ %d”,&amp;B);</p>
<p>&#160; // Realizar calculos</p>
<p>&#160;&#160; Suma=A+B;</p>
<p>&#160;&#160; Resta=A-B;</p>
<p>&#160; Division=A/B;</p>
<p>&#160; Multiplicacion = A*B;</p>
<p>&#160; // Visualización de resultados</p>
<p>&#160; printf(“\nLa suma es igual a %d”,Suma);</p>
<p>&#160; printf(\nLa resta es igual a %d”,Resta);</p>
<p>&#160; printf(“\nLa division es %.2f”,Division);</p>
<p>&#160; printf(“\nLa multiplicacion es %d”,Multiplicacion);</p>
<p>&#160; system(“PAUSE”);</p>
<p>&#160; return 0;</p>
<p>}</p>
<p>&#160;</p>
<p>Si observas detenidamente el programa en su ejecución podrás observar que la división es posible no salga correctamente y eso es debido a que una división entre enteros produce un entero, por lo tanto quizás para resolver mejor este programa deberías emplear otro tipo de dato para los números y que la resolución del mismo sea mas adecuada.</p>
<p>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:07cbad9a-fc0c-40fe-9f1f-58c6d33cd974" class="wlWriterSmartContent">Etiquetas de Technorati: <a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a>,<a href="http://technorati.com/tags/resueltas" rel="tag">resueltas</a>,<a href="http://technorati.com/tags/programaci%c3%b3n" rel="tag">programación</a>,<a href="http://technorati.com/tags/c" rel="tag">c</a>,<a href="http://technorati.com/tags/gratuitos" rel="tag">gratuitos</a>,<a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/practicas" rel="tag">practicas</a>,<a href="http://technorati.com/tags/aprendoencasa" rel="tag">aprendoencasa</a></div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "1837067091";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
     </p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Practicas y ejercicios de programaci&#243;n en c ( 10 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-10/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-10/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 19:46:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2010]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-10/</guid>
		<description><![CDATA[Iniciamos los ejercicios y practicas resueltas en el lenguaje de programación C. &#160; 1º Realizar un programa que pide un dato de entrada que se ha de corresponder a la longitud de un radio, calcula y visualiza la longitud de la circunferencia, el área del círculo y el volumen de la esfera que se corresponda [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "5930672695";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<p>Iniciamos los ejercicios y practicas resueltas en el lenguaje de programación C.</p>
<p>&#160;</p>
<p><strong>1º Realizar un programa que pide un dato de entrada que se ha de corresponder a la longitud de un radio, calcula y visualiza la longitud de la circunferencia, el área del círculo y el volumen de la esfera que se corresponda con el radio dado.</strong></p>
<p>Formulas a emplear:</p>
<p>Siendo r = radio y ^= elevado</p>
<p>Longitud circunferencia = <strong>2·PI·r</strong></p>
<p>Área círculo = <strong>PI·r^2</strong></p>
<p>Volumen esfera = <strong>4/3 · PI · r ^3</strong></p>
<p>&#160;</p>
<p><strong>Solución (1)</strong></p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;stdlib.h&gt;</p>
<p>int main(int argc,char *argv[])</p>
<p>{</p>
<p>&#160; // Creación de variables a utilizar</p>
<p>&#160; int radio;</p>
<p>&#160; float longitud;</p>
<p>&#160; float area;</p>
<p>&#160; float volumen;</p>
<p>&#160; // Solicitar el radio por teclado</p>
<p>&#160; printf(“Introduzca radio…: “);</p>
<p>&#160; scanf(“ %d”,&amp;radio);</p>
<p>&#160; // Realizar los calculos</p>
<p>&#160; longitud = 2*PI*radio;</p>
<p>&#160; area = PI*(radio*radio);</p>
<p>&#160; volumen = (4/3)*PI*(radio*radio*radio);</p>
<p>&#160; // Visualizar los resultados</p>
<p>&#160; printf(“\nLongitud del radio = %.2f”,longitud);</p>
<p>&#160; printf(“\nArea = %.2f”,area);</p>
<p>&#160; printf(“\nVolumen = %.2f”,volumen);</p>
<p>&#160; system(“PAUSE”);</p>
<p>&#160; return 0;</p>
<p>}</p>
<p>&#160;</p>
<p>Si quieres realizar tu aporte hazlo utilizando los comentarios</p>
<p>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:91131efc-d22b-4440-bf27-b44e1829322c" class="wlWriterSmartContent">Etiquetas de Technorati: <a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/programaci%c3%b3n" rel="tag">programación</a>,<a href="http://technorati.com/tags/c" rel="tag">c</a>,<a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a>,<a href="http://technorati.com/tags/practicas" rel="tag">practicas</a>,<a href="http://technorati.com/tags/resueltas" rel="tag">resueltas</a>,<a href="http://technorati.com/tags/soluci%c3%b3n" rel="tag">solución</a>,<a href="http://technorati.com/tags/gratuitos" rel="tag">gratuitos</a>,<a href="http://technorati.com/tags/aprendoencasa" rel="tag">aprendoencasa</a></div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "5930672695";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
     </p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/06/01/practicas-y-ejercicios-de-programacin-en-c-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas de programaci&#243;n en c ( 9 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/06/01/ejercicios-y-practicas-de-programacin-en-c-9/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/06/01/ejercicios-y-practicas-de-programacin-en-c-9/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 16:53:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2010]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[resueltas]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/06/01/ejercicios-y-practicas-de-programacin-en-c-9/</guid>
		<description><![CDATA[&#160; Nuevo articulo para que sigas tus estudios online con nosotros, solucionando problemas, practicas y ejercicios realizados con el lenguaje de programación c. &#160; Saber si un numero es primo o no Planteamiento del ejercicio: Se ha de solicitar por teclado un numero entero positivo, para finalizar el programa se ha de teclear el valor [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "5930672695";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
<h2>&#160;</h2>
<p>Nuevo articulo para que sigas tus <strong>estudios online </strong>con nosotros, solucionando problemas, practicas y ejercicios realizados con el lenguaje de programación c.</p>
<h2>&#160;</h2>
<h2>Saber si un numero es primo o no</h2>
<p>Planteamiento del ejercicio:</p>
<blockquote><p>Se ha de solicitar por teclado un numero entero positivo, para finalizar el programa se ha de teclear el valor –1, en caso de ser el numero valido se ha de indicar si el numero es primo o no.</p>
</blockquote>
<p>Solución al ejercicio propuesto:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
int main()
{
    // Variables a utilizar en el programa
    int numero=0;
    int divisores=0;
    int primo=0; // primo = 0 no primo = 1

    // Solicitar numero entero hasta valor -1
    do
    {
        printf(&quot;\nNumero.....: &quot;);
        scanf(&quot; %d&quot;,&amp;numero);
        if(numero!=-1 &amp;&amp; numero&gt;0)
        {
            // el numero es valido comprobar si es primo
            primo=0;
            divisores=2;
            while(divisores&lt;numero  &amp;&amp; primo!=1)
            {
                if(numero%divisores==0) primo=1;
                divisores++;
            }
            // Si primo vale 0 es que el numero es primo
            if (primo==0)
            {
                printf(&quot;\nEl numero %d es primo&quot;,numero);
            }
            else
            {
                printf(&quot;\nEl numero %d no es primo&quot;,numero);
            }
        }
    } while(numero!=-1);
    return 0;
}
</pre>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "5789933828";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/06/01/ejercicios-y-practicas-de-programacin-en-c-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas de programaci&#243;n en c ( 7 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/05/17/ejercicios-y-practicas-de-programacin-en-c-7/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/05/17/ejercicios-y-practicas-de-programacin-en-c-7/#comments</comments>
		<pubDate>Mon, 17 May 2010 11:57:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2010]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[Lenguaje]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=899</guid>
		<description><![CDATA[Un ejercicio nuevo de c sobre ficheros, para complementar tu formación en nuestro portal de cursos online y de teleformacion. El ejercicio consiste en realizar un programa el cual ha de leer de un archivo 10 valores numéricos y a continuación crear un vector en memoria de forma dinámica. Se ha de solicitar un valor [...]]]></description>
			<content:encoded><![CDATA[<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "5789933828";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/></p>
<p>Un ejercicio nuevo de c sobre ficheros, para complementar tu formación en nuestro portal de cursos online y de teleformacion.</p>
<blockquote><p>El ejercicio consiste en realizar un programa el cual ha de leer de un archivo 10 valores numéricos y a continuación crear un vector en memoria de forma dinámica. Se ha de solicitar un valor numérico por consola y multiplicar cada uno de los elementos del vector por dicho valor numérico, una vez realizado todos los procesos cerrar el archivo y liberar la memoria utilizada por el vector.</p>
</blockquote>
<p>&#160;</p>
<p>Solución al ejercicio planteado:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
int main()

{

    // Variables a utilizar

    int cuantos;
    int *Vector;
    FILE *fichero;
    int numero;
    int contador;

    // Crear array dinamico de memoria
    cuantos=10;
    Vector=(int *)malloc(sizeof(int)*cuantos);

    // leer archivo de datos y asignar los valores al array dinamico
    fichero=fopen(&quot;archivo.dat&quot;,&quot;rt&quot;);
    if(!fichero) {
        printf(&quot;\nError en la apertura del archivo archivo.dat. Compruebe que exista.&quot;);
        exit(1);
    }

    // prelectura
    fscanf(fichero,&quot;%d\n&quot;,&amp;numero);
    contador=0;
    while(!feof(fichero) &amp;&amp; contador&lt;10)
    {
        Vector[contador]=numero;
        contador++;
        fscanf(fichero,&quot;%d\n&quot;,&amp;numero);
    }

    // Cerrar archivo
    fclose(fichero);

    // pedir valor numerico

    printf(&quot;\nTeclee valor numerico ...: &quot;);
    scanf(&quot; %d&quot;,&amp;numero);

    for(contador=0;contador&lt;10;contador++) {
        Vector[contador]*=numero;
        printf(&quot;\n-&gt; %d &quot;,Vector[contador]);
    }

    // liberar memoria y salir del programa
    free(Vector);

    return 0;

}</pre>
<p><br/><br />
<br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/05/17/ejercicios-y-practicas-de-programacin-en-c-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas resueltas de c ( 6 )</title>
		<link>http://www.aprendoencasa.com/index.php/2010/01/12/ejercicios-y-practicas-resueltas-de-c-6/</link>
		<comments>http://www.aprendoencasa.com/index.php/2010/01/12/ejercicios-y-practicas-resueltas-de-c-6/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 20:24:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[Lenguaje]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[soluciones]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2010/01/12/ejercicios-y-practicas-resueltas-de-c-6/</guid>
		<description><![CDATA[Otro ejercicio de programación en c, para ir completando los ejercicios y practicas a resolver. Enunciado del ejercicio: Realizar un programa que solicite un numero entero por teclado y a continuación visualice por pantalla todos los números primos entre 1 y el numero introducido. El ejercicio y practica resuelta a continuación: #include &#60;stdio.h&#62; #include &#60;stdlib.h&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Otro ejercicio de programación en c, para ir completando los ejercicios y practicas a resolver.</p>
<blockquote><p>Enunciado del ejercicio:</p>
<p>Realizar un programa que solicite un numero entero por teclado y a continuación visualice por pantalla todos los números primos entre 1 y el numero introducido.</p>
</blockquote>
<p>El ejercicio y practica resuelta a continuación:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
// Predefinición de funciones

int EsPrimo(int);
// Función principal

int main(int argc,char *argv[])
{
   int numero;
   int valores;
   // Solicitar por pantalla el numero
   printf(“Teclear No.: “);
   scanf(“ %d”,&amp;numero);
   // Visualizar todos los números primos entre 1 y el numero
   // se utilizara una función para saber si un numero es primo o no
   for(valores=1;valores&lt;=numero;valores++)
   {
       if(EsPrimo(valores)==0)
         printf(“El valor %d es primo\n”);
   }
   return 0;
}
// Funciones desarrolladas
// la funcion devuelve 0 si el numero es primo en caso contrario 1
int EsPrimo(int Valor)
{
  int primo=0;
  int divisores=0;
  // Calcular divisores del numero
  for(divisores=2;divisores&lt;Valor-1 &amp;&amp; primo==0;divisores++)
  {
    // Comprobar si existe un divisor
    if(Valor%divisores==0) primo=1;
  }
  return primo;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2010/01/12/ejercicios-y-practicas-resueltas-de-c-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas resueltas de c ( 5 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-5/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-5/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 23:06:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-5/</guid>
		<description><![CDATA[Nueva practica o ejercicio resuelto de programación en el lenguaje c, para que completes tu teleformacion con nuestros cursos online gratuitos. Enunciado del ejercicio: Realizar un programa en el lenguaje de programación c, que lea una matriz de un fichero, realiza la traspuesta de dicha matriz y la almacene en un fichero nuevo. Los nombres [...]]]></description>
			<content:encoded><![CDATA[<p>Nueva practica o ejercicio resuelto de programación en el lenguaje c, para que completes tu teleformacion con nuestros cursos online gratuitos.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "1837067091";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<blockquote>
<p>Enunciado del ejercicio:</p>
<p>Realizar un programa en el lenguaje de programación c, que lea una matriz de un fichero, realiza la traspuesta de dicha matriz y la almacene en un fichero nuevo. Los nombres de los archivos se han de solicitar utilizando la línea de comandos como si de un comando ms-dos o Linux se tratara. Se ha de solicitar tanto el nombre del archivo origen como el nombre del archivo destino.</p>
</blockquote>
<p>El ejercicio y practicas resuelta a continuación:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
// Predefinición de funciones

int Existe(char *);

// Función principal

int main(int argc,char *argv[])
{
    // Comprobación del numero de parámetros recibido
    if(argc!=3) {
        printf(&quot;\n¡Faltan parámetros&quot;);
        printf(&quot;\nFormato: comando fichero_origen fichero_destino&quot;);
        exit(1);
    }

    // Comprobación de ficheros
    if(Existe(argv[1])==1) {
        printf(&quot;\nEl fichero de origen no se ha encontrado o no existe...&quot;);
        exit(1);
    }

    // Declaración de variables necesarias
    FILE *fichero;
    int filas;
    int columnas;
    float **matriz1=NULL;
    int contador;
    int contador1;

    // Abrir archivo en modo lectura
    fichero=fopen(argv[1],&quot;rt&quot;);
    // Leer filas y columnas
    fscanf(fichero,&quot;%d %d&quot;,&amp;filas,&amp;columnas);
    printf(&quot;%d %d&quot;,filas,columnas);
    // Realizar la reserva de memoria para las matrices
     matriz1=(float **)malloc(sizeof(float *)*filas);
    for(contador=0;contador&#60;filas;contador)
    {
        matriz1[contador]=(float *)malloc(sizeof(float)*columnas);
    }
    // Asignar datos de la matriz
    for(contador=0;contador&#60;filas;contador++)
    {
        for(contador1=0;contador1&#60;columnas;contador1++)
        {
            fscanf(fichero,"%f",&#038;matriz1[contador][contador1]);
        }
    }
    fclose(fichero);
    printf("\n");
    for(contador=0;contador&#60;filas;contador++)
    {
        for(contador1=0;contador1&#60;columnas;contador1++)
        {
            printf("%.2f ",matriz1[contador][contador1]);
        }
        printf("\n");
    }

    // visualizar traspuesta
    printf("\n%d %d\n",columnas,filas);
    for(contador=0;contador&#60;columnas;contador++)
    {
        for(contador1=0;contador1&#60;filas;contador1++)
        {
            printf("%.2f ",matriz1[contador1][contador]);
        }
        printf("\n");
    }

    fichero=fopen(argv[2],"wt");
    if(!fichero)
    {
        printf("\nERROR No se ha podido crear el archivo destino...");
        exit(1);
    }
    // grabar traspuesta
    fprintf(fichero,"%d %d\n",columnas,filas);
    for(contador=0;contador&#60;columnas;contador++)
    {
        for(contador1=0;contador1&#60;filas;contador1++)
        {
            fprintf(fichero,"%.2f ",matriz1[contador1][contador]);
        }
        fprintf(fichero,"\n");
    }
    // cerrar archivo
    fclose(fichero);
    // liberar memoria
    for(contador=0;contador&#60;filas;contador++)
    {
        free(matriz1[contador]);
    }
    free(matriz1);
    return 0;
}

// Funcion Existe

int Existe(char *nombre_fichero)
{
    FILE *fichero;
    int resultado=0;  // 0 = existe 1 = no existe

    fichero=fopen(nombre_fichero,"rt");
    if(fichero!=NULL)
    {
        fclose(fichero);
    }
    else
    {
        resultado=1;
    }
    return resultado;
}
</pre>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:cd455456-00bc-4bc7-8e3c-ca8be79faf53" class="wlWriterEditableSmartContent">Etiquetas de Technorati: <a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/gratuitos" rel="tag">gratuitos</a>,<a href="http://technorati.com/tags/online" rel="tag">online</a>,<a href="http://technorati.com/tags/teleformacion" rel="tag">teleformacion</a>,<a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a>,<a href="http://technorati.com/tags/practicas" rel="tag">practicas</a>,<a href="http://technorati.com/tags/programacion" rel="tag">programacion</a>,<a href="http://technorati.com/tags/sistemas" rel="tag">sistemas</a></div>
<p>
</p>
</pre>
<p><script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Ejercicios y practicas resueltas de C ( 4 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 22:37:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Lenguaje C]]></category>
		<category><![CDATA[Lenguaje C++]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[consola]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[soluciones]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/</guid>
		<description><![CDATA[Otro nuevo ejercicio de c para seguir el curso de teleformacion y así poder practicas con ejemplos uno de tus lenguajes de programación favorito. Enunciado del ejercicio: Realizar un programa que invierta un fichero de texto creando uno nuevo ( es decir el fichero de destino o final ha de tener el contenido del primero [...]]]></description>
			<content:encoded><![CDATA[<p>Otro nuevo ejercicio de c para seguir el curso de teleformacion y así poder practicas con ejemplos uno de tus lenguajes de programación favorito.<br />
<br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
</p>
<blockquote><p>Enunciado del ejercicio:</p>
<p>Realizar un programa que invierta un fichero de texto creando uno nuevo ( es decir el fichero de destino o final ha de tener el contenido del primero u origen pero al revés ), en vez de solicitar los nombres de archivos en el programa se utiliza la línea de parámetros como si de una orden de linux o ms-dos se tratara. Se utiliza para leer y grabar las funciones fread y fwrite, realizando una reserva de memoria dinámica con la función malloc, y la función free para liberar la memoria utilizada. El ejercicio se ha realizado utilizando el editor Code Blocks bajo Windows 7 y probado en la consola de comandos de Windows 7.</p></blockquote>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/><br />
El ejercicio resuelto es el siguiente:</p>
<pre class="brush:c">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

// Predefinición de funciones

int Existe(char *);
long int Tamanyo(char *);

// Función principal

int main(int argc,char *argv[])
{
    // Comprobación del numero de parámetros recibido
    if(argc!=3) {
        printf("\n¡Faltan parámetros");
        printf("\nFormato: comando fichero_origen fichero_destino");
        exit(1);
    }

    // Comprobación de ficheros
    if(Existe(argv[1])==1) {
        printf("\nEl fichero de origen no se ha encontrado o no existe...");
        exit(1);
    }

    // Declaración de variables necesarias
    FILE *fichero;
    long int cuantos;
    char *reserva=NULL;
    int contador;

    // Abrir archivo en modo lectura
    fichero=fopen(argv[1],"rt");
    // Averiguar el tamaño del archivo
    cuantos=Tamanyo(argv[1]);
    // Realizar la reserva de memoria correspondiente al tamanyo del fichero
    reserva=(char *)malloc(sizeof(char)*cuantos);
    // leer el archivo completo y almacenarlo en la variable reserva
    fread(reserva,sizeof(char),cuantos,fichero);
    // Cerrar fichero de origen
    fclose(fichero);
    // abrir archivo destino
    fichero=fopen(argv[2],"wt");
    // en caso de error devolver error y salir
    if(!fichero) {
        printf("\nNo se ha podido crear el archivo destino...");
        exit(1);
    }
    // si no existe error recorrer el vector creado en orden inverso
    // y almacenarlo en el archivo destino
    printf("\nInvertir archivo");
    for(contador=cuantos;contador&gt;=0;contador--)
    {
        fwrite(&amp;reserva[contador],sizeof(char),1,fichero);
        printf(".");
    }
    // cerrar el archivo destino
    fclose(fichero);
    // finalizar programa
    printf("Ok\n");
    // Liberar memoria
    free(reserva);
    return 0;
}

// Función Existe

int Existe(char *nombre_fichero)
{
    FILE *fichero;
    int resultado=0;  // 0 = existe 1 = no existe

    fichero=fopen(nombre_fichero,"rt");
    if(fichero!=NULL) {
        fclose(fichero);
    } else {
        resultado=1;
    }
    return resultado;
}

// Función contador

long int Tamanyo(char *nombre_fichero)
{
    FILE *fichero;
    long int contador=0;
    char caracter=0;

    fichero=fopen(nombre_fichero,"rt");
    fread(&amp;caracter,1,sizeof(caracter),fichero);
    while(!feof(fichero))
    {
        contador++;
        fread(&amp;caracter,1,sizeof(caracter),fichero);
    }
    fclose(fichero);
    return contador;
}</pre>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1d3dab55-2cb3-4b4e-8bde-55d35951f8cd" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px">Etiquetas de Technorati: <a rel="tag" href="http://technorati.com/tags/cursos">cursos</a>,<a rel="tag" href="http://technorati.com/tags/soluciones">soluciones</a>,<a rel="tag" href="http://technorati.com/tags/practicas">practicas</a>,<a rel="tag" href="http://technorati.com/tags/ejercicios">ejercicios</a>,<a rel="tag" href="http://technorati.com/tags/sistemas">sistemas</a>,<a rel="tag" href="http://technorati.com/tags/gratuitos">gratuitos</a>,<a rel="tag" href="http://technorati.com/tags/teleformacion">teleformacion</a>,<a rel="tag" href="http://technorati.com/tags/online">online</a>,<a rel="tag" href="http://technorati.com/tags/consola">consola</a>,<a rel="tag" href="http://technorati.com/tags/programacion">programacion</a></div>
<p><br/><br />
<br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "6190361313";
google_ad_width = 468;
google_ad_height = 15;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/12/01/ejercicios-y-practicas-resueltas-de-c-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Practicas C]]></series:name>
	</item>
		<item>
		<title>Seguridad Sistemas y Redes ( 5 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/11/27/seguridad-sistemas-y-redes-5/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/11/27/seguridad-sistemas-y-redes-5/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 12:00:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=828</guid>
		<description><![CDATA[Cadenas identificativas y otros recursos Una de las formas más artesanales de obtener información sobre una organización, es obtenerla a través del código fuente de sus portales corporativos o páginas Web, es decir revisar manualmente el código xhtml, html, asp o php. De esta forma se puede conocer que aplicaciones corren los servicios web e [...]]]></description>
			<content:encoded><![CDATA[<h2>Cadenas identificativas y otros recursos</h2>
<p>Una de las formas más artesanales de obtener información sobre una organización, es obtenerla a través del código fuente de sus portales corporativos o páginas Web, es decir revisar manualmente el código xhtml, html, asp o php. De esta forma se puede conocer que aplicaciones corren los servicios web e incluso es posible determinar, de una manera bastante aproximada, que sistema operativo esta instalado en la maquina. También es normal buscar los comentarios en el código fuente, para ver si proporcionan alguna información que pueda ser de utilidad. Para realizar este proceso de descargar un portal entero a nuestra maquina para analizarlo existen numerosas herramientas, entre ellas destacamos las siguientes:</p>
<h3>wget (Linux)</h3>
<p>En distribuciones Linux, desde la línea de comandos, existe la herramienta <strong>wget</strong>, que permite descargar a un disco local todas las paginas web de un portal, bien por vía HTTP, o por vía FTP, es una aplicación para ejecutarla desde la consola, aunque existen entornos gráficos. la sintaxis del comando es la siguiente:</p>
<blockquote><p><strong>wget [opciones] [lista de urls]</strong></p>
</blockquote>
<p>Siendo las opciones disponibles para el comando las siguientes:</p>
<blockquote><p>-h      <br />&#8211;help</p>
<p>Muestra la ayuda del comando.</p>
<p>-V</p>
<p>Muestra la versión del programa.</p>
<p>-i nombrefichero      <br />&#8211;input-file=nombrefichero</p>
<p>Lee la lista de urls del fichero especificado en nombrefichero.</p>
<p>-o ficherolog      <br />&#8211;output-file=ficherolog</p>
<p>Escribe los ficheros de log en ficherolog, en vez de utilizar la pantalla.</p>
<p>-a ficherolog      <br />&#8211;append-output=ficherolog</p>
<p>Igual que la opción anterior, pero si el fichero existe añade en el mismo la información, en caso de no existir el fichero lo crea.</p>
<p>-t numero      <br />&#8211;tries=numero</p>
<p>Especifica el numero de veces de intentos a realizar para la descarga, si se especifica el valor 0, indica un numero indefinido.</p>
<p>&#8211;follow-ftp</p>
<p>Sigue los enlaces ftp desde documentos HTML</p>
<p>-g on/off      <br />&#8211;glob=on/off</p>
<p>Activa o desactiva el uso de caracteres especiales como ‘*’ para indicar todos los ficheros.</p>
<p>-r</p>
<p>especifica el modo recursivo.</p>
<p>-U</p>
<p>especifica identificación de navegador. Ya que muchos sitios web deniegan la descarga si no se realiza a través de un navegador.</p>
<p>&#8211;wait=tiempo</p>
<p>Especifica un tiempo de parada o pausa entre descargas.</p>
<p>&#8211;limit-rate=valor</p>
<p>Especifica el valor o velocidad de descarga indicada en valor.</p>
<p>-no-parent</p>
<p>Indica que el comando no descargue por debajo del directorio especificado.</p>
<p>-k</p>
<p>Una vez terminada la descarga convierte los enlaces o links de los documentos a rutas relativas, para poder navegar en modo local con la descarga realizada.</p>
<p>-c</p>
<p>Continua con la descarga desde el punto en el que se haya quedado.</p>
</blockquote>
<p><em>Vea los siguientes ejemplos:</em></p>
<pre class="brush:bash">// Descargar un archivo

wget http://www.aprendoencasa.com/index.php

// Descargar utilizando distintos métodos

wget http://www.aprendoencasa.com/imagen1.jpg ftp://aprendoencasa.com/descargar/cursos.zip

// Descargar utilizando archivo de entrada

// se ha de crear un archivo el cual contendrá la uri de los archivos a descargar

wget –i archivos.txt

// Descargar después de una interrupción continuando por donde se haya quedado

wget –i –c archivos.txt

// Descargar y crear un informe 

wget –o informe.txt  http://www.aprendoencasa.com/index.html

// Descargar un archivo limitando el ancho de banda

wget –o informe.txt –-limit-rate=50k ftp://ftp.aprendoencasa.com/ubuntu910.iso

// Descargar especificando nombre de usuario y contraseña en caso de ser solicitado
// por un sitio

wget –http-user=admin –http-password=secreto http://www.aprendoencasa.com/archivo1.zip

// Descargar aumentando el numero de intentos, útil en casos de sitios con saturacion
// y descargar utilizando accesos infinitos

wget –t 50 http://www.aprendoencasa.com/fedora10.iso

wget –t inf http://www.aprendoencasa.com/suse11.iso

// Descargar pagina web entera con los elementos que incluyen la misma como imágenes,
// estilos, etc.

wget –p http://www.aprendoencasa.com

// Descargar pagina web entera especificando recursividad de hasta cinco niveles

wget –r http://www.aprendoencasa.com

// Descargar pagina web entera especificando nivel de recursividad

wget –r -l10 http://www.aprendoencasa.com

// Descargar pagina web convirtiendo los enlaces a relativas para navegar offline

wget –r ––convert-links http://www.aprendoencasa.com

// Existen mas opciones seria interesante consultar el comando para averiguarlas.
</pre>
<div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6c9de506-efb9-4e3a-bd94-30fbf8960900" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Etiquetas de Technorati: <a href="http://technorati.com/tags/cursos" rel="tag">cursos</a>,<a href="http://technorati.com/tags/gratuitos" rel="tag">gratuitos</a>,<a href="http://technorati.com/tags/sistemas" rel="tag">sistemas</a>,<a href="http://technorati.com/tags/programacion" rel="tag">programacion</a>,<a href="http://technorati.com/tags/seguridad" rel="tag">seguridad</a>,<a href="http://technorati.com/tags/teleformacion" rel="tag">teleformacion</a>,<a href="http://technorati.com/tags/online" rel="tag">online</a>,<a href="http://technorati.com/tags/practicas" rel="tag">practicas</a>,<a href="http://technorati.com/tags/ejercicios" rel="tag">ejercicios</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/11/27/seguridad-sistemas-y-redes-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Seguridad Sistemas]]></series:name>
	</item>
		<item>
		<title>Seguridad Sistemas y Redes ( 3 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/10/29/seguridad-sistemas-y-redes-3/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/10/29/seguridad-sistemas-y-redes-3/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 23:07:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[redes]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=788</guid>
		<description><![CDATA[Utilización de herramientas de administración ( 1 ) Como es lógico, cualquier atacante que pretenda atacar nuestro sistema, ha de tener conocimientos sobre una serie de herramientas que le permitan obtener información sobre el sistema que esta atacando en busca de alguna debilidad. Las siguientes herramientas permiten obtener información sobre el sistema tanto a nosotros [...]]]></description>
			<content:encoded><![CDATA[<h4>Utilización de herramientas de administración ( 1 )</h4>
<p>Como es lógico, cualquier atacante que pretenda atacar nuestro sistema, ha de tener conocimientos sobre una serie de herramientas que le permitan obtener información sobre el sistema que esta atacando en busca de alguna debilidad. Las siguientes herramientas permiten obtener información sobre el sistema tanto a nosotros como administradores del sistema como a los atacantes.</p>
<h5>Ping</h5>
<p>Esta herramienta permite comprobar el estado de la conexión de uno o varios equipos remotos utilizando los paquetes de solicitud de eco y de respuesta del mismo (definidos en el protocolo ICMP), de esta forma es posible determinar si un equipo es accesible a través de la red. También se utiliza para medir el tiempo de respuesta ( latencia ) entre dos equipos remotos.</p>
<p>Como curiosidad el nombre de esta utilidad viene dado por el sonar de los submarinos, que enviaban una señal para esperar el eco de la misma y así obtener información. el protocolo utilizado por ping es ICMP que es el acrónimo de Internet Control Message Protocol, este protocolo es el encargado de controlar si existen errores en la comunicación entre dos redes. Para realizar esta acción ICMP envía un mensaje a un destino concreto y dependiendo de lo que suceda con el mensaje el remitente tendrá una respuesta. La respuesta viene determinada por un campo dentro del paquete ICMP que contiene un valor de respuesta, según el valor se determina el diagnostico y el resultado. Los valores de este campo con su significado pueden ser:</p>
<blockquote><p>0     Respuesta de eco ( Echo Reply )<br />
3     Destino inaccesible ( Destination Unreachable )<br />
4     Disminución del trafico desde el origen ( Source Quench )<br />
5     Redireccionar , cambio de ruta ( Redirect )<br />
8     Solicitud de eco ( Echo )<br />
11   Tiempo excedido por un datagrama ( Time Exceeded )<br />
12   Problema de parámetros ( Parameter problem )<br />
13   Solicitud de marca de tiempo ( Timestamp )<br />
14   Respuesta de marca de tiempo ( Timestamp Reply )<br />
15   Solicitud de información ( Information Request ) – obsoleto<br />
16   Respuesta de información ( Information Reply ) – obsoleto<br />
17   Solicitud de mascara ( Addressmask )<br />
18   Respuesta de mascara ( Addressmask Reply )</p></blockquote>
<p>La sintaxis del comando es la siguiente:</p>
<blockquote><p><strong>ping [Opciones] nombre ordenador | dirección ip</strong></p></blockquote>
<p>Las opciones que se pueden utilizar son las siguientes:</p>
<blockquote><p>-c cuantos</p>
<p>esta opción para la ejecución del comando cuando se hayan enviado y recibido cierto numero ( cuantos ) de paquetes ECHO_RESPONSE. Si esta opción no se especifica el comando continua enviando hasta que sea interrumpido, por ejemplo con Ctrl + C.</p>
<p>-a</p>
<p>esta opción emite un pitido audible cada vez que envía un paquete.</p>
<p>-i intervalo</p>
<p>esta opción permite especificar el numero de segundos antes de enviar el siguiente paquete de prueba, el valor por defecto es 1 segundo.</p>
<p>-s valor</p>
<p>esta opción permite especificar el numero de bytes de datos que se envían. A este valor hay que sumarle los 8 bytes correspondientes a la cabecera ICMP. El valor por defecto es de 56 bytes.</p>
<p>-q</p>
<p>esta opción solo muestra el resumen final del comando.</p></blockquote>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/></p>
<h5></h5>
<h5>Traceroute</h5>
<p>Esta utilidad es una herramienta de diagnostico de red que permite trazar la ruta que siguen los paquetes transmitidos desde un punto de red ( host ) a otro punto. Se consigue también información sobre RTT ( Round-Trip delay Time ), que es el tiempo que tarda un paquete enviado desde un emisor en volver al mismo emisor después de haber pasado por el receptor. Este comando es efectivo para realizar un mapa de los routers que se encuentran entre el punto de origen y el punto de destino. Un ejemplo de trazado es el que se muestra a continuación:</p>
<pre class="brush: shell">user@localhost:/# traceroute www.google.com

  traceroute to www.l.google.com (64.233.169.99), 64 hops max, 40 byte packets
  1  * * *
  2  172.16.183.1 (172.16.183.1)  23 ms  23 ms  22 ms
  3  10.127.66.229 (10.127.66.229) [MPLS: Label 1479 Exp 0]  38 ms  51 ms  38 ms
  4  cnt-00-tge1-0-0.gw.cantv.net (200.44.43.85)  38 ms  38 ms  37 ms
  5  cri-00-pos1-0-0.border.cantv.net (200.44.43.50)  51 ms  43 ms  43 ms
  6  sl-st21-mia-14-1-0.sprintlink.net (144.223.245.233)  94 ms  93 ms  93 ms
  7  sl-bb20-mia-5-0-0.sprintlink.net (144.232.9.198)  95 ms  93 ms  93 ms
  8  sl-crs1-mia-0-4-0-0.sprintlink.net (144.232.2.248)  94 ms  95 ms  95 ms
  9  sl-crs1-atl-0-0-0-1.sprintlink.net (144.232.20.48)  104 ms  104 ms  103 ms
 10  sl-st20-atl-1-0-0.sprintlink.net (144.232.18.133)  104 ms  103 ms *
 11  144.223.47.234 (144.223.47.234)  103 ms  103 ms  103 ms
 12  64.233.174.86 (64.233.174.86)  98 ms  97 ms 64.233.174.84 (64.233.174.84)  103 ms
 13  216.239.48.68 (216.239.48.68)  105 ms  104 ms  106 ms
 14  72.14.236.200 (72.14.236.200)  106 ms *  105 ms
 15  72.14.232.21 (72.14.232.21)  110 ms  109 ms  107 ms
 16  * yo-in-f99.google.com (64.233.169.99)  100 ms  99 ms</pre>
<p>El valor de la primera columna es el numero de salto, a continuación se muestra el nombre y dirección IP del nodo por el que pasa, a continuación se muestran tres valores que son los tiempos de respuesta para los paquetes enviados ( en caso de aparecer un símbolo de *, es que no se ha obtenido respuesta ).</p>
<p>este comando envía un paquete UDP de prueba hacia el host destino y hacia un puerto en el que confía que no haya ninguna aplicación esperando datos. Cuando se envía el paquete de prueba la primera vez, el campo TTL (Time-to-live) de la cabecera IP vale 1. El valor de este campo representa el numero máximo de nodos por los que puede circular un paquete. En la practica, cada nodo de la red decrementa en una unidad el campo TTL así que, cuando el paquete de prueba inicial alcance el primer router, el TTL se decrementara y, como el valor de este campo será igual a 0, el paquete habrá de ser descartado. Además, el router enviara a la dirección IP origen del paquete de prueba un paquete ICMP del tipo TIME EXCEEDED.</p>
<p>Cuando el host que esta haciendo el traceroute reciba este paquete de error sabrá que con un TTL igual a 1 no se puede llegar hasta el host destino y además habrá averiguado la dirección IP del primer router en el camino hacia el destino. A continuación, se ira incrementando sucesivamente el valor inicial del campo TTL hasta conseguir que el paquete de prueba alcance el host destino. En ese momento, si efectivamente no hay ninguna aplicación atendiendo al puerto seleccionado, se enviara un mensaje ICMP del tipo PORT UNREACHABLE al host origen del paquete de prueba.</p>
<p>la sintaxis del comando mas básica es la siguiente:</p>
<blockquote><p><strong>traceroute nombre.de.servidor</strong></p></blockquote>
<p>A continuación se describen brevemente las principales opciones de este comando:</p>
<blockquote><p>-f n</p>
<p>con esta opción, se establece el valor inicial del campo TTL en el primer paquete de prueba (valor por defecto: 1).</p>
<p>-m n</p>
<p>con esta opción, se establece el valor máximo del campo TTL que puede utilizarse en los paquetes de prueba (valor por defecto: 30).</p>
<p>-q n</p>
<p>esta opción permite especificar el numero de paquetes de prueba que se envían para cada valor del campo TTL (valor por defecto: 3).</p>
<p>-w s</p>
<p>con esta opción, se fija el tiempo máximo de espera por la respuesta a un paquete de prueba (valor por defecto: 5 segundos).</p>
<p>-p n</p>
<p>de esta forma se puede modificar el numero de puerto base utilizado en los paquetes de prueba (valor por defecto: 33435).  El numero de puerto que se utiliza realmente en los paquetes de prueba se incrementa en una unidad para cada paquete.</p>
<p>-I</p>
<p>con esta opción, en vez de utilizar paquetes UDP de prueba, se utilizan paquetes ICMP.</p></blockquote>
<h5></h5>
<h5>Whois</h5>
<p>Esta utilidad permite realizar una petición a una base de datos en la cual se puede obtener  o determinar el propietario de un nombre de dominio o una dirección IP de internet. Existen dos formas de almacenar la información, el modo “ligero” y el modo “denso”. En el modo denso un servidor almacena toda la información de un conjunto de dominios o IP’s, con lo que es capaz de responder a cualquier consulta sobre un dominio. Mientras que en el modo “ligero”, el servidor guarda el nombre de otro servidor que contiene los datos completos del registrador del mismo. El siguiente ejemplo muestra el resultado de una consulta whois en este caso de wikipedia:</p>
<pre class="brush: shell">nacho@nacho-desktop:~$ whois wikipedia.org
Domain ID:D51687756-LROR
Domain Name:WIKIPEDIA.ORG
Created On:13-Jan-2001 00:12:14 UTC
Last Updated On:08-Jun-2007 05:48:52 UTC
Expiration Date:13-Jan-2015 00:12:14 UTC
Sponsoring Registrar:GoDaddy.com, Inc. (R91-LROR)
Status:CLIENT DELETE PROHIBITED
Status:CLIENT RENEW PROHIBITED
Status:CLIENT TRANSFER PROHIBITED
Status:CLIENT UPDATE PROHIBITED
Registrant ID:GODA-09495921
Registrant Name:DNS Admin
Registrant Organization:Wikimedia Foundation, Inc.
Registrant Street1:P.O. Box 78350
Registrant Street2:
Registrant Street3:
Registrant City:San Francisco
Registrant State/Province:California
Registrant Postal Code:94107-8350
Registrant Country:US
Registrant Phone:+1.4158396885
Registrant Phone Ext.:
Registrant FAX:+1.4158820495
Registrant FAX Ext.:
Registrant Email:dns-admin@wikimedia.org
Admin ID:GODA-29495921
Admin Name:DNS Admin
Admin Organization:Wikimedia Foundation, Inc.
Admin Street1:P.O. Box 78350
Admin Street2:
Admin Street3:
Admin City:San Francisco
Admin State/Province:California
Admin Postal Code:94107-8350
Admin Country:US
Admin Phone:+1.4158396885
Admin Phone Ext.:
Admin FAX:+1.4158820495
Admin FAX Ext.:
Admin Email:dns-admin@wikimedia.org
Tech ID:GODA-19495921
Tech Name:DNS Admin
Tech Organization:Wikimedia Foundation, Inc.
Tech Street1:P.O. Box 78350
Tech Street2:
Tech Street3:
Tech City:San Francisco
Tech State/Province:California
Tech Postal Code:94107-8350
Tech Country:US
Tech Phone:+1.4158396885
Tech Phone Ext.:
Tech FAX:+1.4158820495
Tech FAX Ext.:
Tech Email:dns-admin@wikimedia.org
Name Server:NS0.WIKIMEDIA.ORG
Name Server:NS1.WIKIMEDIA.ORG
Name Server:NS2.WIKIMEDIA.ORG</pre>
<p>La sintaxis mas básica del comando es la siguiente:</p>
<blockquote><p><strong>whois nombre.servidor</strong></p></blockquote>
<p>Las opciones mas comunes que se pueden utilizar con el comando son las siguientes:</p>
<blockquote><p>- a</p>
<p>busca en todas las bases de datos</p>
<p>-F</p>
<p>modo rápido</p>
<p>-h host</p>
<p>se conecta al servidor especificado en host</p>
<p>-H</p>
<p>oculta el aviso legal</p>
<p>-r</p>
<p>desactiva la búsqueda recursiva</p>
<p>&#8211;verbose</p>
<p>muestra en pantalla lo que se esta haciendo</p>
<p>&#8211;version</p>
<p>muestra la versión del programa</p>
<p>Ejemplos de uso común</p>
<p>whois aprendoencasa.com –H</p>
<p>whois aprendoencasa.com –a –H</p></blockquote>
<h5></h5>
<p><br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/></p>
<h5>Finger</h5>
<p>Otra de las utilidades para obtener información es con el uso de la utilidad y su protocolo asociado finger. Esta utilidad es una de las clásicas en el mundo Unix, Linux y como es lógico puede ocasionar ciertos problemas de seguridad. Esta utilidad muestra información sobre un usuario o grupo de usuarios de una maquina conectada a la red. Su utilizacion normal es la de saber si una persona concreta tiene cuenta en un sitio determinado, ya que muestra la información relativa a los usuarios que han iniciado una sesión en un sistema local o remoto, suele mostrar el nombre completo, la ultima vez que se conecto el usuario, el tiempo de inactividad y la línea del terminal y su ubicación si es aplicable. Por defecto utiliza el puerto 79. Se ha de tener en cuenta que la maquina ha de admitir el envió de información sobre una petición de finger, sino lógicamente la petición será rechazada. La sintaxis mas básica del comando es la siguiente:</p>
<blockquote><p><strong>finger @nombre.servidor</strong></p></blockquote>
<p>Los siguientes ejemplos muestran el resultado de una consulta finger de todos los usuarios del sistema que han tenido actividad:</p>
<pre class="brush: shell">nacho@nacho-desktop:~$ finger
  Login     Name             Tty      Idle  Login Time   Office     Office Phone

nacho     jose i.r. saez   tty7    20:18  Nov  9 16:46 (:0)

nacho     jose i.r. saez   pts/0          Nov 10 12:26 (:0.0)</pre>
<pre class="brush: shell">nacho@nacho-desktop:~$ finger -l
  Login: nacho                      Name: jose i.r. saez 

Directory: /home/nacho                  Shell: /bin/bash 

On since Mon Nov  9 16:46 (CET) on tty7 from :0 

    20 hours 18 minutes idle 

On since Tue Nov 10 12:26 (CET) on pts/0 from :0.0 

No mail. 

No Plan.</pre>
<pre class="brush: shell">nacho@nacho-desktop:~$ finger @localhost
  [netbsd.bridge.nacho] 

Login Name TTY Idle When Where 

root Super-User console 3d Sun 19:14 :0 

nacho Nacho *pts/3 43 Mon 19:24 openbsd.firewall.nacho</pre>
<p>Las opciones mas comunes del comando son las siguientes:</p>
<blockquote><p>-l</p>
<p>formato largo, se utiliza en peticiones a maquinas remotas.</p>
<p>-s</p>
<p>formato corto</p></blockquote>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2d3d3fca-04ec-4ea6-aed0-2b349d464a42" class="wlWriterEditableSmartContent" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Etiquetas de Technorati: <a rel="tag" href="http://technorati.com/tags/cursos">cursos</a>,<a rel="tag" href="http://technorati.com/tags/sistemas">sistemas</a>,<a rel="tag" href="http://technorati.com/tags/seguridad">seguridad</a>,<a rel="tag" href="http://technorati.com/tags/internet">internet</a>,<a rel="tag" href="http://technorati.com/tags/redes">redes</a>,<a rel="tag" href="http://technorati.com/tags/gratuitos">gratuitos</a>,<a rel="tag" href="http://technorati.com/tags/practicas">practicas</a>,<a rel="tag" href="http://technorati.com/tags/ejercicios">ejercicios</a>,<a rel="tag" href="http://technorati.com/tags/aprendoencasa.com">aprendoencasa.com</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/10/29/seguridad-sistemas-y-redes-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Seguridad Sistemas]]></series:name>
	</item>
		<item>
		<title>Seguridad en sistemas y redes ( 2 )</title>
		<link>http://www.aprendoencasa.com/index.php/2009/10/26/seguridad-en-sistemas-y-redes-2/</link>
		<comments>http://www.aprendoencasa.com/index.php/2009/10/26/seguridad-en-sistemas-y-redes-2/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 22:46:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[2009]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[practicos]]></category>
		<category><![CDATA[ataques]]></category>
		<category><![CDATA[ejercicios]]></category>
		<category><![CDATA[gratuitos]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[practicas]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[teleformacion]]></category>

		<guid isPermaLink="false">http://www.aprendoencasa.com/?p=769</guid>
		<description><![CDATA[Seguridad en redes TCP/IP Durante los años de la guerra fría (años 60)  DARPA, la agencia de proyectos de investigación avanzada del departamento de defensa de los Estados Unidos, se planteo la posibilidad de un ataque a su red de comunicaciones e investigo desarrollar una red con administración distribuida. El resultado en los estudios de [...]]]></description>
			<content:encoded><![CDATA[<h5>Seguridad en redes TCP/IP</h5>
<p>Durante los años de la guerra fría (años 60)  DARPA, la agencia de proyectos de investigación avanzada del departamento de defensa de los Estados Unidos, se planteo la posibilidad de un ataque a su red de comunicaciones e investigo desarrollar una red con administración distribuida. El resultado en los estudios de redes de conmutación de paquetes derivo en ARPANET, una red de carácter experimental y tolerable a fallos. A partir de los 70 se empezó a investigar la interconexión de distintas redes y se establecieron las bases de la familia de protocolos TCP/IP.</p>
<p>Esta familia de protocolos se divide en cuatro capas:</p>
<h6>Capa de red.</h6>
<p>formada por una red LAN o WAN homogénea. Todos los equipos conectados a internet  implementan esta capa. Todo lo que se encuentra por debajo de la IP es la capa de red física o simplemente, capa de red.</p>
<h6>Capa de internet</h6>
<p>Es la capa que conforma la unidad de todos los miembros de la red y por tanto la que permite que se puedan conectar entre si, independientemente de su tipo de conexión. la misión principal de esta capa es la de direccionamiento y encaminamiento. Todos los equipos conectados a internet implementan esta capa.</p>
<h6>Capa de transporte</h6>
<p>Es la encargada del control de flujo y errores, solo es implementado por equipos usuarios de internet o por terminales de internet. los encaminadores o routers no la necesitan.</p>
<h6>Capa de aplicación</h6>
<p>Es la capa en la que se encuentran los programas y aplicaciones que utilizan internet como clientes y servidores Web, de FTP, Correo, etc. La implementan los equipos usuarios de internet o los terminales de internet, los encaminadores o routers no la utilizan.</p>
<p>En cada una de las capas pueden existir distintas vulnerabilidades y se pueden explotar por parte de un atacante utilizando los protocolos asociados a cada una de ellas. A continuación</p>
<h6>Vulnerabilidades de la capa de red</h6>
<p>Las vulnerabilidades de esta capa están asociadas a los medios sobre los cuales se realiza la conexión. Esta capa presenta problemas de control de acceso y de confidencialidad. Ejemplos de estas vulnerabilidades son desvió de los cables de conexión hacia otros sistemas, pinchazos de la línea, escuchas en medios de transmisión inalámbricos, etc.</p>
<h6>Vulnerabilidades de la capa Internet</h6>
<p>En esta capa se puede realizar cualquier tipo de ataque que afecte a un datagrama IP. Tipos de ataques que se pueden realizar en esta capa son por ejemplo: técnicas de sniffing o escuchas de red, suplantación de mensajes, modificación de datos, retrasos de mensajes y denegación de mensajes. Cualquier atacante puede suplantar un paquete si indica que proviene de otro sistema. La suplantación de un mensaje se puede realizar, por ejemplo dando una respuesta a otro mensaje antes de que lo haga el suplantado. La autentificación de los paquetes se realiza a nivel de máquina por dirección IP y no a nivel de usuario. Si un sistema da una dirección de maquina errónea, el receptor no detectara la suplantación. Este tipo de ataques suele utilizar técnicas como la predicción de números de secuencia TCP, el envenenamiento de tablas cache, etc.</p>
<h6>Vulnerabilidades de la capa de transporte</h6>
<p>Esta capa trasmite información TCP o UDP sobre datagramas IP. En esta capa se pueden encontrar problemas de autentificación, integridad y de confidencialidad. Los ataques mas conocidos en esta capa son las denegación de servicio de protocolos de transporte.  En el mecanismo de seguridad del diseño del protocolo TCP, existe una serie de ataques que aprovechas las deficiencias en el diseño, entre las mas graves se encuentra la posibilidad de la intercepción de sesiones TCP establecidas, con el objetivo de secuestrarlas y dirigirlas a otros equipos.</p>
<h6>Vulnerabilidades de la capa de aplicación</h6>
<p>Esta capa presenta varias deficiencias de seguridad asociadas a sus protocolos. Ya que esta capa utiliza un gran número de protocolos, la cantidad de vulnerabilidades presentes también es superior al resto de capas. Varios ejemplos son los siguientes:</p>
<p><strong><em>Servicio de nombres de dominio</em></strong>: Cuando un sistema solicita conexión a un servicio, pide la dirección IP de un nombre de dominio y envía un paquete UDP a un servidor DNS. Este responde con la dirección IP del dominio solicitado o una referencia que apunta a otro DNS que pueda suministrar la dirección IP solicitada. Un servidor DNS debe entregar la dirección IP correcta pero también puede entregar un nombre de dominio dada una dirección IP u otro tipo de información. Un servidor DNS actúa como una base de datos accesible desde Internet. Si un atacante puede modificar la información que suministra esta base de datos o acceder a información sensible almacenada en la base de datos por error, pudiendo obtener información relativa a la topología de la red de una organización, teniendo así acceso a una lista de los sistemas de la red. A los ataques de suplantación de DNS se les conoce con el nombre de Spoofing DNS.</p>
<p><strong><em>Telnet</em></strong>: Normalmente el servicio de telnet autentifica al usuario mediante la solicitud del usuario y contraseña, que son transmitidas sin ningún tipo de protección por la red. Por lo cual el servicio queda desprotegido ante un ataque haciendo posible la captura de los datos del usuario con técnicas de escucha o sniffing.</p>
<p><strong><em>File Transfer Protocol (FTP)</em></strong>: al igual que el servicio anterior este servicio también envía la información sin protección, con lo cual también queda expuesto de la misma forma que el anterior. Este servicio también permite el acceso anónimo, aunque por lo general esta forma de conexión solo permite el acceso a una zona restringida en la cual solo se permite la descarga de archivos no comprometiendo así el sistema y permitiendo el uso del servicio de forma optima.</p>
<p><strong><em>Hypertext Transfer Protocol (HTTP)</em></strong>: Este servicio es el responsable del World Wide Web.Una de las vulnerabilidades mas conocidas es la de la posibilidad de entrega de información por parte de los usuarios del servicio. Esta entrega de información por parte de los usuarios del servicio es posible mediante la ejecución de código en la parte del servidor.<br />
<br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "0910315320";
google_ad_width = 336;
google_ad_height = 280;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/></p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d5736bde-9b97-4877-a993-aa07289f86b5" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px">Etiquetas de Technorati: <a rel="tag" href="http://technorati.com/tags/cursos">cursos</a>,<a rel="tag" href="http://technorati.com/tags/gratuitos">gratuitos</a>,<a rel="tag" href="http://technorati.com/tags/sistemas">sistemas</a>,<a rel="tag" href="http://technorati.com/tags/seguridad">seguridad</a>,<a rel="tag" href="http://technorati.com/tags/internet">internet</a>,<a rel="tag" href="http://technorati.com/tags/hacking">hacking</a>,<a rel="tag" href="http://technorati.com/tags/online">online</a>,<a rel="tag" href="http://technorati.com/tags/teleformacion">teleformacion</a>,<a rel="tag" href="http://technorati.com/tags/practicas">practicas</a>,<a rel="tag" href="http://technorati.com/tags/ejercicios">ejercicios</a></div>
<p><br/><br />
<br/><br />
<script type="text/javascript"><!--
google_ad_client = "pub-0941526727596297";
google_ad_slot = "3897459344";
google_ad_width = 200;
google_ad_height = 90;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<br />
<br/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.aprendoencasa.com/index.php/2009/10/26/seguridad-en-sistemas-y-redes-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Seguridad Sistemas]]></series:name>
	</item>
	</channel>
</rss>
