elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Emulador Telnet con Php?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Emulador Telnet con Php?  (Leído 5,337 veces)
Drakegon

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Emulador Telnet con Php?
« en: 19 Diciembre 2007, 01:17 am »

Alguien puede darme una luz sobre como puedo programar un Emulador Telnet en Php.

(un Script que me permita hacer una conexion Telnet a un servidor y puerto especifico y   enviar- recibir mensajes)

O si alguien sabe de un script ya hecho pues mucho mejor... xD


Please!! ayuda...


En línea

alone-in-the-chat


Desconectado Desconectado

Mensajes: 587


Ver Perfil
Re: Emulador Telnet con Php?
« Respuesta #1 en: 19 Diciembre 2007, 01:21 am »

Lee sobre manejo de sockets

Saludos


En línea

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b
Drakegon

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Emulador Telnet con Php?
« Respuesta #2 en: 19 Diciembre 2007, 02:34 am »

Alguna otra guia mas especifica?¿  :-\
En línea

Drakegon

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Emulador Telnet con Php?
« Respuesta #3 en: 19 Diciembre 2007, 03:20 am »

Olvidenlo...
Lo he logrado  ;D

Ahora alguien sabe de algun host que permita abrir sockets?¿

En línea

Drakegon

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Emulador Telnet con Php?
« Respuesta #4 en: 20 Diciembre 2007, 17:26 pm »


Tengo un problema con el emulador de telnet que estoy creando:

el problema es el siguiente:

Tengo la conexión con el servidor abierta, un inputbox donde ingreso el comando que le enviare al servidor, y el textarea donde se deben ver todos los comandos enviados y las respuestas recibidas. Pero para enviar un comando lo envio a la misma pagina en forma de formulario con Post y luego lo trato de enviar con fputs, pero al hacerlo me da error:

"Warning: fputs(): supplied argument is not a valid stream resource in ****\***.php on line 138"  huh

imagino que esto ocurre debido a que en el momento en que llamo de nuevo a la pagina para enviarle un nuevo comando la conexión que he abierto en un principio se pierde, y el identificador de la conexión que le paso a fputs no es valido.

Alguien sabe como puedo recoger el comando del input box y actualizar el contenido del textarea sin perder la conexión???  rolleyes

Ayuda...  tongue
En línea

alone-in-the-chat


Desconectado Desconectado

Mensajes: 587


Ver Perfil
Re: Emulador Telnet con Php?
« Respuesta #5 en: 20 Diciembre 2007, 18:03 pm »

Puedes meterlo en variables de Session
primero hazte una clase simple para manejo de sockets
las operaciones basicas conectar , cerrar la conexion, recoger datos , enviar datoss y lo que creas necesario  , despues haz un include de esa clase y crea una variable session de una instancia de esa clase
asi la session se encargara de hacer perdurar tu objeto

Saludos

 
En línea

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Emulador Telnet con Php?
« Respuesta #6 en: 20 Diciembre 2007, 20:08 pm »

Código
  1. <?php
  2. $da = fsockopen("$HOST", 23, $errno, $errstr, 30);
  3. if (!$da) {
  4.    echo "$errstr ($errno)<br />\n";
  5. } else {
  6.    $salida = "$USER\r\n";
  7.    $salida .= "$PASS\r\n";
  8.    $salida .= "$COMANDOS\r\n";
  9.    $salida .= "exit\r\n";
  10.  
  11.    fwrite($da, $salida);
  12.    while (!feof($da)) {
  13.        echo fgets($da, 128);
  14.    }
  15.    fclose($da);
  16. }
  17. ?>

Defines host, user, pass y los comandos.
En línea

Drakegon

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Emulador Telnet con Php?
« Respuesta #7 en: 20 Diciembre 2007, 21:35 pm »

Puedes meterlo en variables de Session
primero hazte una clase simple para manejo de sockets
las operaciones basicas conectar , cerrar la conexion, recoger datos , enviar datoss y lo que creas necesario  , despues haz un include de esa clase y crea una variable session de una instancia de esa clase
asi la session se encargara de hacer perdurar tu objeto

Saludos

 

Intente lo de las sesiones y no funciono..  :-\
El identificador de la conexion se me desaparace en cuanto intento enviar un comandp..  :P

Aca lo basico del codigo para ver si alguien detecta cual es el error..  :-[

Code: Page.php
Obtengo el servidor al que me voy a conectar...

Citar

<?php
session_start();//Start  session
header("Cache-control: provate");//Fix the IE6 Sessions problem
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form action="page2.php" method=post>
<input name="server" type="text" id="text" />
<input type="submit" name="Submit" value="Submit" />
</form>
</body>
</html>



CODE: page2.php
Aqui hago todo el manejo... El problema es que el identificador del Socket de la conexion se desaparece en cuanto intento enviar un commando..  :-\\

Citar

<?php
session_start();//Start out session
header("Cache-control: provate");//Fix the IE6 Sessions problem
?>

<?php

if($HTTP_POST_VARS["server"])
   {
   $_SESSION['server'] = $HTTP_POST_VARS["server"];
   $_SESSION['conection'] = fsockopen($_SESSION['server'],25);
   $_SESSION['screen']=fgets($_SESSION['conection'],256);
   }
   
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Typer" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
</style>
</head>

<body>
<p align="center" class="style1">SERVER: <?php print($_SESSION['server']) ?> </p>
<p align="center" class="style1">CONECTION: <?php print($_SESSION['conection']) ?> </p>
<p align="center">

<?php

if($HTTP_POST_VARS["command"])
   {
   fwrite($_SESSION['conection'], $HTTP_POST_VARS["command"]);
   $response=fgets($_SESSION['conection'],256) ;
   $_SESSION['screen'] = $_SESSION['screen']."\r\n". $HTTP_POST_VARS["command"]."\r\n".$response;
   }
   
?>


<form action="page2.php" method=post>
  <div align="center">
  <textarea name="Tex" cols="40" rows="10" id="Tex"><?php print($_SESSION['screen'])?>
</textarea>
  </p>
  </div>
<p align="center">
  <input name="command" type="command" id="command" />
</p>
<p align="center">
  <input type="submit" name="Submit" value="Submit" />
</p>
</body>
</html>




En línea

alone-in-the-chat


Desconectado Desconectado

Mensajes: 587


Ver Perfil
Re: Emulador Telnet con Php?
« Respuesta #8 en: 20 Diciembre 2007, 23:22 pm »

Bueno por lo que parece la conexion abierto mediante sockets se cierra apenas termina de ejecutarse el script

por lo tanto intentar mantener una conexion  socket por session es imposible

Estoy intentando hacerlo manteniendo los comandos que vas ingresando
 :-\
veremos como va la cosa te voy poniendo un avance .
Aun hay que modificarlo  aver si mas tarde me doy un toke

sockets.php
Código
  1. <?php
  2. class CI_Sockets {
  3.  
  4. var $socket;
  5.  
  6. function createSock($server,$port)
  7. {
  8. $direccion = gethostbyname($server);
  9. $this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  10. $resultado = socket_connect($this->socket, $direccion, $port);
  11. if ($resultado < 0)
  12. {
  13. return false;
  14. }else{
  15. return true;
  16. }
  17. }
  18. function up($string)
  19. {
  20. return socket_write($this->socket, $string);
  21. }
  22. function get()
  23. {
  24. if(!socket_last_error($this->socket))
  25. {
  26.   if($buffer=socket_read($this->socket,4096,PHP_NORMAL_READ))
  27.   {
  28.       return $buffer;
  29.   }
  30. }
  31. }
  32. function closeSocket()
  33. {
  34. return socket_close($this->socket);
  35. }
  36. }
  37. ?>
  38.  


page1.php

Código
  1. <?php
  2. ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7. <title>Define</title>
  8. </head>
  9. <body>
  10. <form action="page2.php" method="post">
  11. <input name="server" type="text" id="text" />
  12. <input type="submit" name="Submit" value="Submit" />
  13. </form>
  14. </body>
  15. </html>
  16.  


page2.php

Código
  1. <?php
  2. include("sockets.php");
  3. if (!session_is_registered("Srv") && isset($_POST['server']))
  4. {
  5. session_register("Srv","Commands");
  6. $_SESSION['Srv'] = $_POST['server'];
  7. $_SESSION['Commands'] = array();
  8. }
  9. $ci_socket = new CI_Sockets();
  10. $ci_socket->createSock($_SESSION['Srv'],PUERTO,$socket);
  11. if (isset($_POST['command']))
  12. {
  13. $_SESSION['Commands'][] = $_POST['command'];
  14. $_SESSION['Commands'] = array_unique($_SESSION['Commands']);
  15. $cadena = "";
  16. foreach($_SESSION['Commands'] as $var)
  17. {
  18. $ci_socket->up(trim($var));
  19. $cadena .= $ci_socket->get();
  20. }
  21. }
  22.  
  23. ?>
  24. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  25. <html xmlns="http://www.w3.org/1999/xhtml">
  26. <head>
  27. <meta http-equiv="Content-Typer" content="text/html; charset=iso-8859-1" />
  28. <title> =_= </title>
  29. </head>
  30. <body>
  31. <form method=post>
  32.   <div align="center">
  33.   <textarea name="command" cols="40" rows="10" id="command" />
  34.   <?php
  35.   echo $cadena;
  36.   ?>
  37.   </textarea>
  38.   </div>
  39. <p align="center">
  40.   <input name="command" type="command" id="command" />
  41. </p>
  42. <p align="center">
  43.   <input type="submit" name="Submit" value="Submit" />
  44. </p>
  45. </body>
  46. </html>
  47. <?php
  48. $ci_socket->closeSocket();
  49. ?>
  50.  


ya voy saliendo del trabajo X) veamos si llegando a mi casa continuo buscando en foros eh encontrado que varios se chocaron con esto

Veremos si puedo darle solucion  :-\
Se aceptan sugerencias

 ;D
En línea

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
emulador telnet
PHP
wendyl 3 2,128 Último mensaje 30 Marzo 2012, 18:18 pm
por el-brujo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines