Hallo Thomas,
ich bin zwar auch nicht der ultimative Experte, aber zwei mögliche Fehler sind mir hier aufgefallen:
Hier das Script ($nslookupcmd zeigt auf /usr/bin/nslookup auf meiner Maschine):
sub resolve_host {
»» $hostname = $ENV{'REMOTE_HOST'};
»» # Wenn IP-Adresse zurückgeliefert wurde, NSLookup ausführen
»»
»» if ($hostname =~ /^d*/)
»» {
open(NS,"$nslookupcmd $hostname |grep Name: |");
Was soll "grep Name: |" bewirken? M.E. muesste auch
open(NS,"$nslookupcmd $hostname |");
funktionieren.
while(<NS>)
{
($dummy,$name)=split(/: /);
Falls die Leerzeichen auch im original-Script stehen, solltes Du sie loeschen, sonst wird der Doppelpunkt nicht gefunden.
($dummy,$name)=split(/:/);
}
close (NS);if ($name eq '')
{
$name='unknown';
}
else
{
chop($name);
}
$hostname=$name;
}
}Was macht eigentlich das "chop"-Kommando? :-((
Chop() löscht das letzte Zeichen eines Skalars weg. Chomp() löscht nur ein Zeilenumbruch am Ende eines Skalars weg und wäre hier der Deutlichkeit halber vielleicht angebrachter.
Gruß, Christian.
Gruß
Thomas