Ou shit!<br><br>Com l'he liat amb l'HTML!!!<br><br><div style>
<pre style="color:#000000;background:#ffffff">get <span style="color:#0000e6">'/'</span> <span style="color:#808030">=</span><span style="color:#808030">></span> <span style="color:#800000;font-weight:bold">sub</span> <span style="color:#800080">{</span>
    <span style="color:#800000;font-weight:bold">my</span> $self <span style="color:#808030">=</span> <span style="color:#400000">shift</span><span style="color:#800080">;</span>
    <span style="color:#800000;font-weight:bold">my</span> $cgi <span style="color:#808030">=</span> $self<span style="color:#808030">-></span>param<span style="color:#808030">(</span><span style="color:#0000e6">'cgi'</span><span style="color:#808030">)</span><span style="color:#800080">;</span>
    <span style="color:#800000;font-weight:bold">my</span> $local_ip <span style="color:#808030">=</span> $self<span style="color:#808030">-></span>my_ip<span style="color:#800080">;</span>
    <span style="color:#400000">chomp</span><span style="color:#808030">(</span>$local_ip<span style="color:#808030">)</span><span style="color:#800080">;</span>
    <span style="color:#696969"># Si posa /?cgi=nagios llavors redirect to Nagios.</span>
    <span style="color:#800000;font-weight:bold">if</span> <span style="color:#808030">(</span><span style="color:#800000;font-weight:bold">defined</span> $cgi<span style="color:#808030">)</span> <span style="color:#800080">{</span>
         <span style="color:#800000;font-weight:bold">if</span> <span style="color:#808030">(</span>$cgi <span style="color:#808030">eq</span> <span style="color:#0000e6">'nagios'</span><span style="color:#808030">)</span> <span style="color:#800080">{</span>
             $self<span style="color:#808030">-></span>redirect_to<span style="color:#808030">(</span><span style="color:#0000e6">"http://$local_ip:</span><span style="color:#008c00">8080</span><span style="color:#0000e6">/nagios/"</span><span style="color:#808030">)</span><span style="color:#800080">;</span>
         <span style="color:#800080">}</span>
    <span style="color:#800080">}</span>
    <span style="color:#696969"># Pinto la web igualment.</span>
    $self<span style="color:#808030">-></span>render<span style="color:#808030">(</span><span style="color:#0000e6">'remote'</span><span style="color:#808030">)</span><span style="color:#800080">;</span>
<span style="color:#800080">}</span><span style="color:#800080">;</span>

<span style="color:#696969"># Trapi lleig per obtenir la IP del server.</span>
helper <span style="color:#797997">my_ip </span><span style="color:#808030">=></span> <span style="color:#800000;font-weight:bold">sub</span> <span style="color:#800080">{</span>
    <span style="color:#800000;font-weight:bold">my</span> $interface <span style="color:#808030">=</span> <span style="color:#0000e6">"eth0"</span><span style="color:#800080">;</span>
    <span style="color:#800000;font-weight:bold">my</span> $ifconfig <span style="color:#808030">=</span> <span style="color:#0000e6">"/sbin/ifconfig"</span><span style="color:#800080">;</span>
    <span style="color:#800000;font-weight:bold">my</span> @lines <span style="color:#808030">=</span> <span style="color:#800000;background:#ffffe8;font-weight:bold">qx</span><span style="color:#800000;background:#ffffe8">|</span><span style="color:#000000;background:#ffffe8">$ifconfig $interface</span><span style="color:#800000;background:#ffffe8">|</span> <span style="color:#808030">or</span> <span style="color:#800000;font-weight:bold">die</span><span style="color:#808030">(</span><span style="color:#0000e6">"Can't get info from ifconfig: "</span><span style="color:#808030">.</span><span style="color:#797997">$!</span><span style="color:#808030">)</span><span style="color:#800080">;</span>
    <span style="color:#800000;font-weight:bold">foreach</span><span style="color:#808030">(</span>@lines<span style="color:#808030">)</span><span style="color:#800080">{</span>
            <span style="color:#800000;font-weight:bold">if</span><span style="color:#808030">(</span><span style="color:#800000">/</span><span style="color:#0000e6">inet addr:</span><span style="color:#808030">(</span><span style="color:#808030">[</span><span style="color:#797997">\d</span><span style="color:#0000e6">.</span><span style="color:#808030">]</span><span style="color:#808030">+</span><span style="color:#808030">)</span><span style="color:#800000">/</span><span style="color:#808030">)</span><span style="color:#800080">{</span>
                    <span style="color:#800000;font-weight:bold">return</span> <span style="color:#0000e6">"</span><span style="color:#797997">$1</span><span style="color:#0f69ff">\n</span><span style="color:#0000e6">"</span><span style="color:#800080">;</span>
            <span style="color:#800000;font-weight:bold">last</span><span style="color:#800080">;</span>
            <span style="color:#800080">}</span>
    <span style="color:#800080">}</span>
<span style="color:#800080">}</span><span style="color:#800080">;</span>
</pre></div>






<table width="100%" border="0"><tbody><tr>
<td valign="top" width="45%">Source code:<br>
<textarea name="code_src" cols="40" rows="17" style="width:100%">get '/' => sub {
    my $self = shift;
    my $cgi = $self->param('cgi');
    my $local_ip = $self->my_ip;
    chomp($local_ip);
    # Si posa /?cgi=nagios llavors redirect to Nagios.
    if (defined $cgi) {
         if ($cgi eq 'nagios') {
             $self->redirect_to("http://$local_ip:8080/nagios/");
         }
    }
    # Pinto la web igualment.
    $self->render('remote');
};

# Trapi lleig per obtenir la IP del server.
helper my_ip => sub {
    my $interface = "eth0";
    my $ifconfig = "/sbin/ifconfig";
    my @lines = qx|$ifconfig $interface| or die("Can't get info from ifconfig: ".$!);
    foreach(@lines){
            if(/inet addr:([\d.]+)/){
                    return "$1\n";
            last;
            }
    }
};</textarea>

<br>

</td>
<td>

<br></td>

<td valign="top" width="45%"><br></td></tr></tbody></table><br>Ara si?<br><br><br><div class="gmail_quote">2012/5/2 Jordi "Txor" Casas Ríos <span dir="ltr"><<a href="mailto:txorlings@gmail.com" target="_blank">txorlings@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Diria que no es aixó el que vull, vull que un botó de l'HTML que dona la meva aplicació et canvii el port, de fet crec que lo interessant seria qué poso a l'href on m'magino que hi ha algo de màgia Mojo...<br>

<br>
Adjunto una foto amb el que tinc muntat ara mateix (uala com m'he liat al final, ho utilitzaré per a memória!)...<br><br>I finalment adjunto el codi implicat, com veieu utilitzo un helper per obtenir la IP que hi ha a eth0. Aixó no em serveix perque podrien haver-hi més interfícies. Segur que es pot fer d'una altra manera, redirect_to posant només el port i el directori? MMmmmmMMMmmMMmmm.... ¿Com deu ser?<br>


<br><pre style='color:#000000;background:#ffffff;'>get <span style='color:#0000e6; '>'/'</span> <span style='color:#808030; '>=</span><span style='color:#808030; '>></span> <span style='color:#800000; font-weight:bold; '>sub</span> <span style='color:#800080; '>{</span><br>


    <span style='color:#800000; font-weight:bold; '>my</span> $self <span style='color:#808030; '>=</span> <span style='color:#400000; '>shift</span><span style='color:#800080; '>;</span><br>


    <span style='color:#800000; font-weight:bold; '>my</span> $cgi <span style='color:#808030; '>=</span> $self<span style='color:#808030; '>-></span>param<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'cgi'</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span><br>


    <span style='color:#800000; font-weight:bold; '>my</span> $local_ip <span style='color:#808030; '>=</span> $self<span style='color:#808030; '>-></span>my_ip<span style='color:#800080; '>;</span><br>


    <span style='color:#400000; '>chomp</span><span style='color:#808030; '>(</span>$local_ip<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span><br>


    <span style='color:#696969; '># Si posa /?cgi=nagios llavors redirect to Nagios.</span><br>    <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span><span style='color:#800000; font-weight:bold; '>defined</span> $cgi<span style='color:#808030; '>)</span> <span style='color:#800080; '>{</span><br>


         <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>$cgi <span style='color:#808030; '>eq</span> <span style='color:#0000e6; '>'nagios'</span><span style='color:#808030; '>)</span> <span style='color:#800080; '>{</span><br>


             $self<span style='color:#808030; '>-></span>redirect_to<span style='color:#808030; '>(</span><span style='color:#0000e6; '>"http://$local_ip:</span><span style='color:#008c00; '>8080</span><span style='color:#0000e6; '>/nagios/"</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span><br>


         <span style='color:#800080; '>}</span><br>    <span style='color:#800080; '>}</span><br>    <span style='color:#696969; '># Pinto la web igualment.</span><br>


    $self<span style='color:#808030; '>-></span>render<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'remote'</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span><br>


<span style='color:#800080; '>}</span><span style='color:#800080; '>;</span><br><br><span style='color:#696969; '># Trapi lleig per obtenir la IP del server.</span><br>


helper <span style='color:#797997; '>my_ip </span><span style='color:#808030; '>=></span> <span style='color:#800000; font-weight:bold; '>sub</span> <span style='color:#800080; '>{</span><br>


    <span style='color:#800000; font-weight:bold; '>my</span> $interface <span style='color:#808030; '>=</span> <span style='color:#0000e6; '>"eth0"</span><span style='color:#800080; '>;</span><br>


    <span style='color:#800000; font-weight:bold; '>my</span> $ifconfig <span style='color:#808030; '>=</span> <span style='color:#0000e6; '>"/sbin/ifconfig"</span><span style='color:#800080; '>;</span><br>


    <span style='color:#800000; font-weight:bold; '>my</span> @lines <span style='color:#808030; '>=</span> <span style='color:#800000; background:#ffffe8; font-weight:bold; '>qx</span><span style='color:#800000; background:#ffffe8; '>|</span><span style='color:#000000; background:#ffffe8; '>$ifconfig $interface</span><span style='color:#800000; background:#ffffe8; '>|</span> <span style='color:#808030; '>or</span> <span style='color:#800000; font-weight:bold; '>die</span><span style='color:#808030; '>(</span><span style='color:#0000e6; '>"Can't get info from ifconfig: "</span><span style='color:#808030; '>.</span><span style='color:#797997; '>$!</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span><br>


    <span style='color:#800000; font-weight:bold; '>foreach</span><span style='color:#808030; '>(</span>@lines<span style='color:#808030; '>)</span><span style='color:#800080; '>{</span><br>


            <span style='color:#800000; font-weight:bold; '>if</span><span style='color:#808030; '>(</span><span style='color:#800000; '>/</span><span style='color:#0000e6; '>inet addr:</span><span style='color:#808030; '>(</span><span style='color:#808030; '>[</span><span style='color:#797997; '>\d</span><span style='color:#0000e6; '>.</span><span style='color:#808030; '>]</span><span style='color:#808030; '>+</span><span style='color:#808030; '>)</span><span style='color:#800000; '>/</span><span style='color:#808030; '>)</span><span style='color:#800080; '>{</span><br>


                    <span style='color:#800000; font-weight:bold; '>return</span> <span style='color:#0000e6; '>"</span><span style='color:#797997; '>$1</span><span style='color:#0f69ff; '>\n</span><span style='color:#0000e6; '>"</span><span style='color:#800080; '>;</span><br>


            <span style='color:#800000; font-weight:bold; '>last</span><span style='color:#800080; '>;</span><br>            <span style='color:#800080; '>}</span><br>


    <span style='color:#800080; '>}</span><br><span style='color:#800080; '>}</span><span style='color:#800080; '>;</span><br></pre><br><br>Salut i gràcies pel vostre temps!!<div class="HOEnZb">

<div class="h5"><br>
<br><div class="gmail_quote">2012/5/1 Alex Muntada <span dir="ltr"><<a href="mailto:alexm@alexm.org" target="_blank">alexm@alexm.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


+ Jordi "Txor" Casas Ríos:<br>
<div><br>
> Como se redirecciona a un cliente remoto hacia el puerto 8080<br>
<br>
</div>Si et refereixes a canviar el port de l'hypnotoad:<br>
<a href="https://metacpan.org/module/Mojo::Server::Hypnotoad#listen" target="_blank">https://metacpan.org/module/Mojo::Server::Hypnotoad#listen</a><br>
<br>
Si et refereixes a tenir un proxy invers al port 8080 que connecti al<br>
port de l'hypnotoad com a backend, pots usar apache mod_proxy, nginx,<br>
pound, varnish, perlbal, etc. Hi ha moltes opcions, però primer<br>
caldria saber exactament el que vols dir.<br>
<div><br>
> la ruta /nagios independientemente de la IP en que escuche el server?<br>
<br>
</div># Suposant que hagi entès bé el que vols, potser això?<br>
<br>
define command {<br>
        command_name check_http_port_url<br>
        command_line /usr/lib/nagios/plugins/check_http -H '$ARG1$' -p<br>
'$ARG2$ -u '$ARG3$' -f follow<br>
}<br>
<br>
define command {<br>
        command_name check_http_hostaddress_port_url<br>
        command_line /usr/lib/nagios/plugins/check_http -H<br>
'$HOSTADDRESS$' -p '$ARG1' -u '$ARG2$' -f follow<br>
}<br>
<br>
define service {<br>
        use generic-service<br>
        host_name <a href="http://web.example.org" target="_blank">web.example.org</a><br>
        service_description Hypnotoad App<br>
        check_command check_http_port_url!<a href="http://www.example.com" target="_blank">www.example.com</a>!8080!/foo/bar<br>
        # check_command check_http_hostaddress_port_url!8080!/foo/bar<br>
<div>}<br>
<br>
> Cuando lo tenega totalmente arreglado y limpito os cuelgo el código!<br>
<br>
</div>Genial! :-)<br>
<span><font color="#888888"><br>
--<br>
Alex Muntada <<a href="mailto:alexm@alexm.org" target="_blank">alexm@alexm.org</a>><br>
<a href="http://alexm.org/" target="_blank">http://alexm.org/</a><br>
</font></span><div><div>_______________________________________________<br>
llista dels Barcelona-pm<br>
<a href="mailto:Barcelona-pm@pm.org" target="_blank">Barcelona-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/barcelona-pm" target="_blank">http://mail.pm.org/mailman/listinfo/barcelona-pm</a><br>
BCN Perl Mongers: <a href="http://barcelona.pm.org" target="_blank">http://barcelona.pm.org</a></div></div></blockquote></div><br>
</div></div></blockquote></div><br>