Utilizando RAW Sockets en PHP

Iniciado por WHK, Junio 03, 2013, 11:13:25 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

La gran ventaja de utilizar sockets v/s raw sockets es que puedes construir paquetes personalizados adaptados al protocolo que desees, por ejemplo puedes realizar no solo conecciones TCP o UDP sino también ICMP y PUP.

Recordemos que en todos los sistemas menos Windows necesitamos permisos de root por asuntos de seguridad.

Ejemplo de un paquete ICMP haciendo Ping:
Código: php
<?php
/* Paquete ICMP */
$package = "\x08\x00\x7d\x4b\x00\x00\x00\x00PingHost";
$socket = socket_create(AF_INET, SOCK_RAW, 1);
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => $timeout, 'usec' => 0));
socket_connect($socket, '173.194.42.63', null);
$ts = microtime(true);
socket_send($socket, $package, strLen($package), 0);
if (socket_read($socket, 255))
$demora = microtime(true) - $ts;
else
$demora = false;
socket_close($socket);

var_dump($demora);


También podemos crear nuestros propios Cliente/Servidor basados en protocolos creados por nosotros y evadir firewalls, cifrar información, enviar datos extras en las cabeceras, etc, entre otras cosas.

- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login - You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

interesante, cosas como esas es bueno conocerla o por lo menos lo fundamental.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.