Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/07/2009, 15:20
Avatar de maycolalvarez
maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: como detectar la ip y el puerto con php??

Puede que utilices la extensión de sockets de php y abras uno escuchando ese puerto, hasta ahora no lo he echo en php, sólo con C# porque es relativamente más rápido.

Ahh por cierto, todas las solicitudes HTML la recibe apache y son por el puerto 80, si utilizas apache, claro.

este es un código de ejemplo extraído del manual php:

Código PHP:
#!/usr/local/bin/php -q
<?php
error_reporting
(E_ALL);

/* Permitir que el script permanezca en espera de conexiones. */
set_time_limit(0);

/* Habilitar vaciado de salida implicito, de modo que veamos lo que
 * obtenemos a medida que va llegando. */
ob_implicit_flush();

$direccion '192.168.1.53';
$puerto    10000;

if ((
$sock socket_create(AF_INETSOCK_STREAMSOL_TCP)) < 0) {
    echo 
"socket_create() fall&oacute;: motivo: " socket_strerror($sock) . "\n";
}

if ((
$ret socket_bind($sock$direccion$puerto)) < 0) {
    echo 
"socket_bind() fall&oacute;: motivo: " socket_strerror($ret) . "\n";
}

if ((
$ret socket_listen($sock5)) < 0) {
    echo 
"socket_listen() fall&oacute;: motivo: " socket_strerror($ret) . "\n";
}

do {
    if ((
$mens_sock socket_accept($sock)) < 0) {
        echo 
"socket_accept() fall&oacute;: motivo " socket_strerror($mens_sock) . "\n";
        break;
    }
    
/* Enviar instrucciones. */
    
$mensaje "\nBienvenido al Servidor de Prueba PHP. \n" .
               
"Para salir, escriba 'salir'. " .
               
"Para detener el servidor, escriba 'detener'.\n";
    
socket_write($mens_sock$mensajestrlen($mensaje));

    do {
        if (
false === ($buf socket_read($mens_sock2048PHP_NORMAL_READ))) {
            echo 
"socket_read() fall&oacute;: motivo: " socket_strerror($ret) . "\n";
            break 
2;
        }
        if (!
$buf trim($buf)) {
            continue;
        }
        if (
$buf == 'salir') {
            break;
        }
        if (
$buf == 'detener') {
            
socket_close($mens_sock);
            break 
2;
        }
        
$respuesta "PHP: Usted dijo '$buf'.\n";
        
socket_write($mens_sock$respuestastrlen($respuesta));
        echo 
"$buf\n";
    } while (
true);
    
socket_close($mens_sock);
} while (
true);

socket_close($sock);
?>