miércoles, 19 de noviembre de 2014

Configurar los puertos en Windows 7


Configurar los puertos en Windows 7 

Lo primero que tenemos que hacer para abrir los puertos en Windows 7, esacceder al Firewall de Windows. Para ello, entramos en el Panel de Control y seleccionamos Windows Firewall





A continuación, pulsamos sobre Advanced Settings (configuración avanzada) y en la ventana que se abre, seleccionaremos en la parte izquierda, Inbound Rules (Regla de entrada). 





Ahora, un listado con todas las aplicaciones y su configuración de acceso en el firewall de Windows 7 se abre. Podemos dar acceso total a las conexiones de una aplicación (lo cual no es muy recomendable si no se conoce bien esta) o podemos abrir los puertos que necesitemos para realizar determinada actividad. 

Para abrir los puertos en Windows 7, pulsamos sobre New Rule (nueva regla) y aparecerá una ventana de este tipo: 





Pulsamos sobre Port (Puertos) y es ahora cuando debemos de indicar a Windows 7, qué puertos queremos abrir. 





Debido a que el 
firewall de Windows7 ofrece soporte para administrar varios tipos de redes, es también necesario indicarle a qué redes queremos que se le aplique esta regla de puertos


http://www2.configurarequipos.com/imgdocumentos/puertos-windows-7/abrir-puertos-windows-7-4.jpg


Por último, para acabar de abrir los puertos en Windows 7, el firewall de éste nos pide que creemos una especie de perfil asociado a los puertos abiertos. En esta ventana, tendremos que asignar un nombre (por ejemplo Messenger) y una descripción en la que podremos poner los puertos que tiene abiertos esta regla. 


http://www2.configurarequipos.com/imgdocumentos/puertos-windows-7/abrir-puertos-windows-7-6.jpg


Para acabar el proceso, pulsamos sobre Finalizar y ya has podido abrir puertos para juegos en Windows 7 o para otras aplicaciones que requieran de este proceso


Conocer los puertos abiertos en Windows y como cerrarlos
¿Que son los puertos informáticos o puertos de comunicaciones del equipo?

Cada computadora o equipo informático que se encuentre conectado a una red, utiliza unas especies de puertas de comunicación por las que recibe y envía información a otros equipos diferentes.
Para poder realizar varias intercambios de datos de forma simultánea, existen 65536 puntos de salida y entrada, estos son conocidos como puertos y se identifican de forma numérica.
La definición técnica es: Un número de 16 bits, empleado por un protocolo host a host para identificar a que protocolo del nivel superior o programa de aplicación se deben entregar los mensajes recibidos.
Se encuentran organizados mediantes las reglamentaciones asignadas por la IANA (Agencia de Asignación de Números de Internet) en tres categorías:
1. Los puertos comprendidos entre el 0 y el 1023 son puertos reservados para usos específicos que se encuentran reglamentados, el sistema operativo los abre para permitir su empleo por diversas aplicaciones mediante los llamados protocolos "Bien conocidos", por ejemplo: HTTP, FTP, TELNET, IRC, POP3, etc.

2. Los comprendidos entre 1024 y 49151 son denominados "Registrados" y pueden ser usados por cualquier aplicación.

3. Los comprendidos entre los números 49152 y 65535 son denominados "Dinámicos o privados", son los usados por el sistema operativo cuando una aplicación tiene que conectarse a un servidor y le realiza la solicitud de un puerto.
Puertos informáticos o puertos de comunicaciones

Puertos más conocidos y usados en el equipo


Algunos de ellos, solo los más conocidos y comentados son los siguientes:
21 Puerto de FTP, usado para la descarga de archivos al equipo.
23
 Puerto Telnet, protocolo usado para comunicación.
25
 Puerto SMTP, usado por los clientes de email para enviar correo electrónico.
80
 Puerto HTTP, es el usado por los navegadores para cargar las páginas web.
110 y 995
 Puertos POP3, usados por los clientes de email para la recepción del correo.
119
 Puerto NNTP
139
 El famoso puerto de Netbios.
443
 Puerto HTTPS , usado para la carga segura de páginas web.
445
 Movil IP
531
 Puerto IRC, usado para servicios de chat.
1521
 Puerto para Oracle y SQL.
3306
 Puerto para Mysql (Bases de datos)
4661, 4662, 4665
 Puertos usados para Conexiones Peer to Peer como Emule y otros.
Si sientes curiosidad o tienes necesidad de obtener información sobre un puerto en específico, puedes descargar un documento a tu equipo con una lista completa con la descripción de cada uno en el siguiente link.

Lista de los Puertos Bien conocidos (Common Ports) 0 al 1023

0/TCP,UDP   Reserved; do not use
1/TCP,UDP   TCPMUX (TCP port service multiplexer)
5/TCP,UDP   RJE (Remote Job Entry)
7/TCP,UDP   ECHO protocol
9/TCP,UDP   DISCARD protocol
13/TCP,UDP  DAYTIME protocol
17/TCP,UDP  QOTD (Quote of the Day) protocol
18/TCP,UDP  Message Send Protocol  
19/TCP,UDP  CHARGEN (Character Generator) protocol
20/TCP,UDP  FTP - data port
21/TCP,UDP  FTP - control (command) port
22/TCP,UDP  SSH (Secure Shell) - used for secure logins,
            file transfers (scp, sftp) and port forwarding.
23/TCP,UDP  Telnet protocol - unencrypted text communications
25/TCP,UDP  SMTP - used for e-mail routing
            between mail servers E-mails
26/TCP,UDP  RSFTP - A simple FTP-like protocol
35/TCP,UDP  QMS Magicolor 2 printer
37/TCP,UDP  TIME protocol
38/TCP,UDP  Route Access Protocol  
39/TCP,UDP  Resource Location Protocol    
41/TCP,UDP  Graphics   
42/TCP,UDP  Host Name Server 
49/TCP,UDP  TACACS Login Host protocol
53/TCP,UDP  DNS (Domain Name System)
57/TCP      MTP, Mail Transfer Protocol   
67/UDP      BOOTP (BootStrap Protocol) server; also used by
            DHCP (Dynamic Host Configuration Protocol)
68/UDP      BOOTP client; also used by DHCP
69/UDP      TFTP(Trivial File Transfer Protocol)
70/TCP      Gopher protocol
79/TCP      Finger protocol
80/TCP      HTTP(HyperText Transfer Protocol)
            used for transferring web pages     
80/TCP,UDP  Skype - CONFLICT with HTTP listening ports
81/TCP      Torpark - Onion routing ORport
82/UDP      Torpark - Control Port
88/TCP      Kerberos - authenticating agent
101/TCP           HOSTNAME   
107/TCP           Remote Telnet Service  
109/TCP           POP, Post Office Protocol, version 2
110/TCP           POP3 (Post Office Protocol version 3)
            used for sending/retrieving E-mails
113/TCP           ident - old server identification system,
            still used by IRC servers to identify its users
115/TCP           SFTP, Simple File Transfer Protocol 
118/TCP,    UDP   SQL Services
119/TCP           NNTP (Network News Transfer Protocol)
            used for retrieving newsgroups messages   
123/UDP           NTP (Network Time Protocol)
            used for time synchronization
137/TCP,UDP NetBIOS NetBIOS Name Service
138/TCP,UDP NetBIOS NetBIOS Datagram Service
139/TCP,UDP NetBIOS NetBIOS Session Service
143/TCP,UDP IMAP4 (Internet Message Access Protocol 4)
            used for retrieving E-mails
152/TCP,UDP BFTP, Background File Transfer Program    
153/TCP,UDP SGMP, Simple Gateway Monitoring Protocol  
156/TCP,UDP SQL Service
158/TCP,UDP DMSP, Distributed Mail Service Protocol   
161/TCP,UDP SNMP (Simple Network Management Protocol)
162/TCP,UDP SNMPTRAP   
179/TCP     BGP (Border Gateway Protocol)
194/TCP     IRC (Internet Relay Chat)
201/TCP,UDP AppleTalk Routing Maintenance 
209/TCP,UDP The Quick Mail Transfer Protocol    
213/TCP,UDP IPX
218/TCP,UDP MPP, Message Posting Protocol 
220/TCP,UDP IMAP, Interactive Mail Access Protocol, version 3     
259/TCP,UDP ESRO, Efficient Short Remote Operations   
264/TCP,UDP BGMP, Border Gateway Multicast Protocol
318/TCP,UDP TSP, Time Stamp Protocol
323/TCP,UDP IMMP, Internet Message Mapping Protocol   
366/TCP,UDP SMTP, Simple Mail Transfer Protocol.
            ODMR, On-Demand Mail Relay    
369/TCP,UDP Rpc2portmap
384/TCP,UDP A Remote Network Server System
387/TCP,UDP AURP, AppleTalk Update-based Routing Protocol   
389/TCP,UDP LDAP (Lightweight Directory Access Protocol)
401/TCP,UDP UPS Uninterruptible Power Supply
411/TCP           Direct Connect Hub port
427/TCP,UDP SLP (Service Location Protocol)
443/TCP,UDP HTTPS - HTTP Protocol over TLS/SSL
            (encrypted transmission)
444/TCP,UDP SNPP, Simple Network Paging Protocol
445/TCP           Microsoft-DS
445/UDP           Microsoft-DS SMB file sharing
464/TCP,UDP Kerberos Change/Set password  
465/TCP           SMTP over SSL - CONFLICT with registered Cisco protocol
500/TCP,UDP Isakmp, IKE-Internet Key Exchange   
514/TCP           rsh protocol - used to execute non-interactive
            command line commands on a remote system and see the screen return    
514/UDP           syslog protocol - used for system logging
515/TCP           Line Printer Daemon protocol
            used in LPD printer servers
524/TCP,UDP NCP (NetWare Core Protocol)
530/TCP,UDP RPC
531/TCP,UDP AOL Instant Messenger, IRC     Un
540/TCP           UUCP (Unix-to-Unix Copy Protocol)
542/TCP,UDP commerce 546/TCP,UDP    DHCPv6 client    
547/TCP,UDP DHCPv6 server    
548/TCP           AFP (Apple Filing Protocol)   
554/TCP           RTSP (Real Time Streaming Protocol)
563/TCP,UDP NNTP protocol over TLS/SSL (NNTPS)
587/TCP           email message submission (SMTP) (RFC 2476)
591/TCP           FileMaker 6.0 Web Sharing
593/TCP,UDP HTTP RPC Ep Map  
604/TCP           TUNNEL
631/TCP,UDP IPP, Internet Printing Protocol     
636/TCP,UDP LDAP over SSL (encrypted transmission)
639/TCP,UDP MSDP, Multicast Source Discovery Protocol 
646/TCP           LDP, Label Distribution Protocol    
647/TCP           DHCP Failover Protocol 
648/TCP           RRP, Registry Registrar Protocol    
652/TCP           DTCP, Dynamic Tunnel Configuration Protocol     
654/TCP           AODV, Ad hoc On-Demand Distance Vector    
666/TCP           id Software's Doom multiplayer game played over TCP
674/TCP           ACAP, Application Configuration Access Protocol 
691/TCP           MS Exchange Routing    
692/TCP           Hyperwave-ISP    
695/TCP           IEEE-MMS-SSL
698/TCP           OLSR, Optimized Link State Routing  
699/TCP           Access Network   
700/TCP           EPP, Extensible Provisioning Protocol     
701/TCP           LMP, Link Management Protocol.
702/TCP           IRIS over BEEP   
706/TCP           SILC, Secure Internet Live Conferencing   
711/TCP           TDP, Tag Distribution Protocol
712/TCP           TBRPF, Topology Broadcast
            based on Reverse-Path Forwarding    
720/TCP           SMQP, Simple Message Queue Protocol 
829/TCP           CMP (Certificate Management Protocol)     
860/TCP           iSCSI
873/TCP           rsync File synchronisation protocol
901/TCP           Samba Web Administration Tool (SWAT)
981/TCP           SofaWare Technologies Remote HTTPS management
            for firewall devices 989/TCP,UDP
            FTP Protocol (data) over TLS/SSL
990/TCP,UDP FTP Protocol (control) over TLS/SSL 
991/TCP,UDP NAS (Netnews Admin System)    
992/TCP,UDP Telnet protocol over TLS/SSL  
993/TCP           IMAP4 over SSL (encrypted transmission)
995/TCP           POP3 over SSL (encrypted transmission)


Symfony2

Symfony

¿QUE ES SYMFONY?

Symfony es un framework PHP de tipo full-stack (pila completa) construido con varios componentes independientes creados por el proyecto Symfony.
Symfony2 es uno de los Framework más potentes que existen para desarrollar aplicaciones web.


características

Su código, y el de todos los componentes y librerías que incluye, se publican bajo la licencia MIT de software libre.
La documentación del proyecto también es libre e incluye varios libros y decenas de tutoriales específicos.
Aprender a programar con Symfony te permite acceder a una gran variedad de proyectos: el framework Symfony2 para crear aplicaciones complejas, el micro framework Silex para sitios web sencillos y los componentes Symfony para otras aplicaciones PHP.
Los componentes de Symfony son tan útiles y están tan probados, que proyectos tan gigantescos como Drupal 8 están construidos con ellos.

Estructura

Directorio app:
La finalidad de este directorio es alojar a los archivos PHP encargados de los procesos de   carga del   Framework y a toda la configuración general de la aplicación. Los archivos de   este directorio son los   encargados de unir y dar cohesión a los distintos componentes del   Framework.
Directorio src:
Este directorio contiene todo el código creado por el desarrollador para la aplicación.
Directorio vendor:
Este directorio contendrá todo aquel código que no pertenece al desarrollador de la   aplicación; es lo   que se conoce como librerías de terceros. También contiene los   componentes de Symfony2, el ORM   Doctrine2 y el sistema de plantillas twig.
Directorio web:
Este directorio contiene el controlador frontal (app_dev.php y app.php) y todos los Assets de la   aplicación: CSS's, Javascripts, imágenes.
app_dev.php: Es uno de los controladores frontales de la aplicación. Este controlador frontal es el utilizado para el desarrollo, para lo cual añade una barra de depuración que ofrece información sobre todo lo relacionado con la ejecución de la aplicación.

PROBLEMA A DESARROLLAR

Desarrollar un aplicativo que permita registrar estudiantes y que pertenezcan aun determinado programa, se necesita que el aplicativo permita editar, eliminar y listar los estudiantes registrados y os respectivos programas.

Configuración

Primero descargar xampp desde la pagina oficial: https://www.apachefriends.org/es/index.html, lo instalamos en la unidad c y damos servicio al xampp (apache y mysql).

agregar variables de entorno: carpeta php de xampp
Dentro de la carpeta php de xampp agregamos el archivo composer.bat




C:\xampp\php, para que en la consola se pueda reconocer el php como un comando.


clic derecho en equipo, propiedades


configuración avanzada del sistema

variables de entorno, path, editar, agregamos las variables de entorno y aceptar
Primero descargar: versión Symfony_Standard_Vendors_2.5.6.zip, superior o menor a la versiones anteriores.
Segundo: dentro de la carpeta htdocs de simfony creamos una carpeta y la llamaremos registro-estudiante como se muestra en la siguente imagen:
Dentro de la carpeta registro-estudiante descomprimimos Symfony_Standard_Vendors_2.5.6.zip y debe quedar de la siguiente manera:
Una ves realizado esto abrimos el símbolo del sistema (cmd), nos situamos en la carpeta donde se encuentra nuestra carpeta creada frameworks :\xampp\htdocs\registro-estudiante.
Una vez aquí ejecutamos el siguiente comando que es un entorno de trabajo, esto crea una carpeta que es donde se va a almacenar nuestro proyecto: php app/console generate:bundle
damos enter
Nos aparece un menú donde nos da opciones para la configuración del proyecto.
Donde dice Bundle namespace: escribimos Acme/RegistroBundle el Acme viene por defecto en symfony.
Debe quedar de la siguiente manera: 
damos enter
Después nos aparece esto donde le tenemos que dar enter: Bundle name [AcmeRegistroBundle]:
Despues nos pregunta donde estaría el directorio que es por defecto, le damos enter:
Nos pide un formato de configuración donde escogeremos annotation, le damos enter.
Después nos dice que si generamos una estructura del escritorio, le damos que si (yes) enter.
Que si confirmamos la generación si (yes), enter.
A estos pasos le decimos que si (yes).
Con esto ya tenemos un directorio creado de trabajo.
Ahora vamos a crear las entidades que vamos a trabajar, en este caso son: Estudiante y Programa.
Para ello escribimos el siguiente comando: php app/console doctrine:generate:entity
Lo primero que nos dice es que generemos un nombre para la entidad dentro del directorio de trabajo. Digitamos lo siguiente: AcmeRegistroBundle:Estudiante damos enter.

Nos pide el formato: digitamos annotation enter
Luego nos pide los campos que va a contener esta entidad.
Una aclaración, symfony por defecto nos crea los id de cada entidad, a si que no vamos a digitar el id.
Los campos que vamos a necesitar son lo siguiente: carnet, nombres, apellidos, fechaNacimiento de tipo date, semestre de tipo integer, dirección, teléfono, email,observaciones.
Si, no vamos a agregar mas campos le damos enter, confirmamos (yes), (yes).
Ahora vamos a crear la entidad, en este caso:  Programa.
Para ello escribimos el siguiente comando: php app/console doctrine:generate:entity
Lo primero que nos dice es que generemos un nombre para la entidad dentro del directorio de trabajo. Digitamos lo siguiente: AcmeRegistroBundle:Programa damos enter.
Nos pide el formato: digitamos annotation enter
Luego nos pide los campos que va a contener esta entidad.
Una aclaración, symfony por defecto nos crea los id de cada entidad, a si que no vamos a digitar el id.
Los campos que vamos a necesitar son lo siguiente: nombre.
Si no vamos a agregar mas campos le damos enter, confirmamos (yes), (yes).
El siguiente paso va ser relacionar las tablas que ya están creadas en el framework a una base de datos.
Pero antes de esto utilizaremos el siguiente comando para generar los set y los get de los campos de cada entidad o tabla: 
php app/console doctrine:generate:entities Acme
Ahora debemos crear una base de datos, por defecto nos crea una DB llamada symfony.
php app/console doctrine:database:créate
Con esto nos dice que ya tenemos creada una DB.
Lo podemos verificar en el localhost/phpmyadmin, en el momento no tiene ninguna tabla.
Ahora ejecutamos el siguiente comando para crear las tablas:
php app/console doctrine:schema:update –force
Verificamos
 Ahora si ya podemos crear una relación entre las dos tablas, escribimos lo siguiente:
Ya que symfony trabaja las entidades como una clase.
Podemos abrir cualquier editor de texto, en la entidad Estudiante digitamos lo siguiente:
Este código lo colocamos al final
/**
 *@ORM\ManyToOne(targetEntity="Programa", inversedBy="estudiantes")
 *@ORM\JoinColumn(name="programa_id", referencedColumnName="id")
 */
 protected $programa;
Ahora digitamos la entidad Programa
/**
*@ORM\OneToMany(targetEntity="Estudiante", mappedBy="programa")
*/
protected $estudiantes;
public function __construct(){
           //$this->estudiantes = new ArrayCollection();
            $this->estudiantes = new \Doctrine\Common\Collections\ArrayCollection();
 }
Ya hecho esto, ahora vamos a seguir con los siguientes comando que le dimos anteriormente.
Esto es para actualizar la base de datos.
Primero ejecutamos: php app/console doctrine:schema:update –force
Segundo ejecutamos: php app/console doctrine:generate:entities Acme
Ahora vamos a crear el crud, symfony permite crear el crud por comando, ejecutamos lo siguiente:
php app/console generate:doctrine:crud
Despues nos dice que escribamos el nombre de la tabla que vamos a generar el crud.
En este caso digitamos lo siguiente.  AcmeRegistroBundle:Programa
Confirmamos (yes) enter, annotation enter
Aquí damos enter, yes enter
Ahora vamos a crear el crud para la entidad Estudiante, ejecutamos lo siguiente:
php app/console generate:doctrine:crud
Despues nos dice que escribamos el nombre de la tabla que vamos a generar el crud.
En este caso digitamos lo siguiente.  AcmeRegistroBundle:Estudiante
Confirmamos (yes) enter, annotation enter
Aquí damos enter, yes enter
Ahora vamos al navegador y escribimos: localhost/registro-estudiante/web/app_dev.php/
Nos debe de aparecer lo siguiente:
Si te aparece esto es porque hemos hecho hasta ahora todo bien.
Ahora nuevamente digitamos en el navegador lo anterior pero le añadimos el nombre de la entidad, ya sea estudiante o programa.
localhost/registro-estudiante/web/app_dev.php/estudiante/
Debe de aparecer lo siguiente y le damos clic en créate a new entry para agregar un estudiante.

Agregamos estudiantes, los podemos editar, eliminar.
Ahora nuevamente digitamos en el navegador lo anterior pero le añadimos el nombre de la entidad, ya sea estudiante o programa.
localhost/registro-estudiante/web/app_dev.php/programa/
Debe de aparecer lo siguiente y le damos clic en créate a new entry para agregar un programa.