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