Re: [Cascavel-pm] Contador Web de usuários OnLine

Sammuel sammuel.souza em gmail.com
Terça Junho 21 18:40:20 PDT 2005


Depois de muitas horas procurando como fazer com que mostre o IP Local do 
computador e nao o IP que esta na internet encontrei um site

http://www.auditmypc.com/adt.asp

onde o adt.asp

tem um Java Applet

<applet width="1" height="1" code="auditmypc.class">
</appet>

puxei esse auditmypc.class, achei um programa para descompilar .class

e aki está o conteudo do auditmypc.class

import java.applet.Applet;
import java.applet.AppletContext;
import java.net.*;

public class auditmypc extends Applet
{
    public auditmypc()
    {
    }
    public void start()
    {
        String s = "unknown";
        String s1 = getDocumentBase().getHost();
        byte byte0 = 80;
        showStatus("1) Visit http://www.auditmypc.com ");
        try
        {
            String s2 = (new Socket(s1, 
byte0)).getLocalAddress().getHostAddress();
            if(!s2.equals("255.255.255.255"))
                s = s2;
        }
        catch(Exception exception)
        {
            showStatus("2) Visit http://www.auditmypc.com ");
        }
        try
        {
            URL url = new URL(getDocumentBase(), "pega_usuario.cgi?acao=" + 
s);
            getAppletContext().showDocument(url, "_self");
        }
        catch(Exception exception1)
        {
            showStatus("3) Visit http://www.auditmypc.com ");
        }
    }

    String Ip;

____________________________ fim

Caso a pessoa esteja usando proxy use a variavel 
$ENV{'HTTP_X_FORWARDED_FOR'}

#!/usr/bin/perl

use CGI;

my $query = new CGI;

my $acao = $query->param('acao');
my $data = 'usuarios.db';
my $tol = 180; # segundos

print $query->header;

   if ($acao eq '') {
print "Erro applet nao carregado.";
exit;
   }

$msg = "Usuario com NAT.";

### Verifica se esta com proxy! ####
  if ($ENV{'HTTP_X_FORWARDED_FOR'} ne '') {
$msg = "Usuario com PROXY.";
$ip_local = $ENV{'HTTP_X_FORWARDED_FOR';
  }

$ip_internet = $ENV{'REMOTE_ADDR'};
$browser = $ENV{'HTTP_USER_AGENT'};
$tempo = time;

open (FILE,$data);
@text = <FILE>;
close (FILE);
foreach $line (@text){
        chop($line);
        ($ip_internet_db,$ip_local_db,$browser_db,$tempo_db,$msg_db)=split(/=/,$line);
        if (($ip ne $ip_internet_db) && ($ip_local_db ne $ip_local)) {
                $diff = time-$tempo_db;
                if (($diff<$tol)&&($diff>0)){
                        push @newtext, $line;
                }
        }
}

$newline="$ip_internet=$ip_local=$browser=$tempo=$msg";
push @newtext,$newline;
open (FILE,">$data");
foreach $line (@newtext){print FILE "$line\n";}
close (FILE);


Pronto, como eu nao achei um compilador em java para criar o .class denovo, 
é so achar e compilar mudando algumas coisas no .class e pronto você tera o 
IP do computador da pessoa que usa NAT para acessar internet, o interessate 
seria você colocar

Obs: Não executei o PERL para ver se estava rodando...

[]'s Sammuel 



Mais detalhes sobre a lista de discussão Cascavel-pm