Christian: IP-Adressen in Hostnamen wandeln (Perl)

Beitrag lesen

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