[cgi+perl]user-id & rechnername des clients?

Hallo!
Kann ich mit perl/cgi den Rechnernamen und eingeloggten User (WinNT reicht) auslesen?

Danke!

Kann ich mit perl/cgi den Rechnernamen und eingeloggten User
(WinNT reicht) auslesen?

yep,
my $node = $ENV{ā€šCOMPUTERNAMEā€˜};
my $user = $ENV{ā€šUSERNAMEā€˜};

Klaus

tach klaus!

danke - aber ā€žjeinā€œā€¦ du meintest sicher ā€žREMOTE_USERā€œ in der Umgebungsvar; ich bekomme aber nur die IP des Rechners:frowning: die anderen ENVs werden nicht gefĆ¼llt (der user ja auch nur nach vorheriger Authentifizierung, oder?)
ich hoffe auf die zugriffsmƶglichkeit aufs win-filesystem oder win-apiā€¦ mit visual-basic geht das. das kann ich aber nicht einsetzen.
die ENV - IP ist eventuell ein workaround - irgendwie wird sich damit ja im Intranet der Rechnername und auch der CurrentUser ermittelnā€¦??? s**, ist aber kein nslookup installiertā€¦

naja - noch ideen?

danke

cm

[Bei dieser Antwort wurde das Vollzitat nachtrƤglich automatisiert entfernt]

Kann ich mit perl/cgi den Rechnernamen und eingeloggten User
(WinNT reicht) auslesen?

my $node = $ENV{ā€šCOMPUTERNAMEā€˜};
my $user = $ENV{ā€šUSERNAMEā€˜};

danke - aber ā€žjeinā€œā€¦ du meintest sicher ā€žREMOTE_USERā€œ in der

Nein, meinte ich nicht, da Du nach Perl gefragt hast und nichts von einem Webserver gesagt hast :wink:

Umgebungsvar; ich bekomme aber nur die IP des Rechners:frowning: die
anderen ENVs werden nicht gefĆ¼llt (der user ja auch nur nach
vorheriger Authentifizierung, oder?)

korrekt

ich hoffe auf die zugriffsmƶglichkeit aufs win-filesystem oder
win-apiā€¦ mit visual-basic geht das. das kann ich aber nicht
einsetzen.
die ENV - IP ist eventuell ein workaround - irgendwie wird
sich damit ja im Intranet der Rechnername und auch der
CurrentUser ermittelnā€¦??? s**, ist aber kein nslookup
installiertā€¦

Nein, wird er nicht - wofĆ¼r auch? Nur wenn sich ein User gegenĆ¼ber dem Webserver authentifizier steht der Login Name in
$ENV{ā€šREMOTE_USERā€˜}
Der ist aber nicht zwangslƤufig identisch mit dem Login Namen des Users an seinem lokalen Rechner.
An den TCP-Namen des Rechners kommt Du auch anders ran (gethostbyaddr - vorausgesetzt der DNS ist fĆ¼r reverse Lookup konfiguriert), allerdings ist auch diesen nicht zwangslƤufig identisch mit dem Namen der Workstation.

if (($ENV{'REMOTE\_HOST'} eq $ENV{'REMOTE\_ADDR'}) && ($ENV{'REMOTE\_ADDR'} =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/))
{
 my $address = pack('C4', $1, $2, $3, $4);
 my $dns\_address = (gethostbyaddr($address, 2))[0];
 $ENV{'REMOTE\_HOST'} = $DNS\_Address if $dns\_address;
}
$ENV{'REMOTE\_HOST'} =~ tr/[A-Z]/[a-z]/;
my $computername = $ENV{'REMOTE\_HOST'};

Alles Klar?

Klaus

1 Like