Página 1 de 1

Problema con Net::Subnets y la impresión en el navegador

NotaPublicado: 2010-01-29 12:52 @578
por spacepecjks
¡Hola todos!

Espero puedan ayudarme con mi código; lo que sucede es que quiero ver el subneteo de alguna dirección IP. Mi código al correrlo desde el MS-DOS, sí funciona, pero al pasarlo al navegador, me marca error, no me muestra nada. Según yo, el error es por el módulo use Net::Subnets el cual estoy usando, ya que cada vez que lo desactivo, ya me imprime cualquier cosa en pantalla, y la verdad, solo al usar este módulo me ha ocurrido un error en el navegador.

Ojalá y alguno de ustedes pueda ayudarme, se lo agradecería de sobre manera, ¡de antemano gracias!

Aquí les pongo mi código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!c:/perl/bin/perl.exe
  2. use Net::Subnets;
  3. print "content-type: text/html \n\n";
  4.  
  5. ########################
  6. #FUNCIONES
  7. verver22();
  8. ########################
  9. sub verver22()
  10. {
  11.         print "prueba", "\n\n";
  12.         print "prueba2222", "\n\n";
  13.         my @subnets = qw(10.0.0.0/24);
  14.     my $sn = Net::Subnets->new;
  15.     my $results;
  16.     foreach my $subnet (@subnets) {
  17.         my ($lowipref, $highipref) = $sn->range(\$subnet);
  18.         $results .= "$subnet: $$lowipref - $$highipref\n";
  19.                 $results22 .= "$$lowipref";
  20.                 $results23 .= "$$highipref";
  21.             @ipip = $results22;
  22.                 @ipip2 = $results23;
  23.                 }
  24.                 $ipip=@ipip[0];
  25.                 #$ipip=@ipip[1];
  26.     print( $results );
  27.         #print "@ipip", "\n\n";  #si funciona
  28.         print "$ipip[0]", "\n\n";
  29.         print "$ipip2[0]", "\n\n";
  30.        
  31.        
  32.  
  33.     my $lowip  = $ipip[0];
  34.     my $highip = $ipip2[0];
  35.  
  36.     my $sn2 = Net::Subnets->new;
  37.     my $listref = $sn2->list(\($lowip, $highip));
  38.     foreach my $address (@$listref) {
  39.                 print( $address );
  40.     }
  41.  
  42.          
  43. #==============================================================================
  44. print<<EOF;
  45. <html><head><title>Subnetting.</title>
  46. <div align="center"><IMG SRC="http://localhost/encabezado.png" WIDTH="645" HEIGHT="100" ALT="chuaz" align=top></div>
  47. </head>
  48. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  49. <body bgcolor = "#FFFFFF">
  50.  
  51. <br>
  52. <h2><center><font face="Calibri"><font color="black">Propiedades</font></font></center></h2>
  53. <!--  HACIENDO PRUEBA DE IMPRESION DE DATOS DENTRO DE UNA TABLA  -->
  54. <b><font color="red"><font face="verdana"><font size=2>Prueba-subnetting</font></font></font></b><br>
  55. <b><font color="red"><font face="verdana"><font size=2>$ipip[0]</font></font></font></b><br>
  56. <b><font color="red"><font face="verdana"><font size=2>$ipip2[0]</font></font></font></b><br>
  57. <b><font color="red"><font face="verdana"><font size=2>address</font></font></font></b><br>
  58.  
  59. </body>
  60. </html>
  61. EOF
  62.  
  63. }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


NOTA: en MS-DOS, al correrlo me da los valores deseados, chequen:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
C:\>Perl subnet.pl
10.0.0.0/29: 10.0.0.1 - 10.0.0.6
10.0.0.1

10.0.0.6

10.0.0.110.0.0.210.0.0.310.0.0.410.0.0.510.0.0.6
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Re: problema con Net::Subnets y la impresion en el navegador

NotaPublicado: 2010-01-29 14:59 @666
por explorer
Bienvenido a los foros de Perl en Español, spacepecjks.

Creo que no es content-type: text/html, sino Content-type: text/html.

Yo revisaría los ficheros de actividad (log) del servidor web, para saber qué ocurre para que no funcione, porque pueden ser un montón de cosas.

Pon también
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use warnings;
$|++;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

al principio del programa, para que te dé más pistas.

Usar el módulo CGI es muy recomendable para todo lo relacionado con cgi. Mira mi CGI mínimo para que veas un ejemplo. Incluso lo puedes usar para comprobar si tu sistema CGI funciona bien. Te ahorrarás incluso problemas creando el HTML, como veo que tienes algunos en la parte del HTML de tu código (fíjate que hay marcas de cierre, pero no de apertura, como la de <head>).