Ik run vanaf een systeem (SunOS) een perl script dat via telnet (Net::Telnet) connectie maakt met een aantal andere machines. Vervolgens worden wat commando's uitgevoerd waarmee locale variabelen worden gevuld, dit is verder niet van belang.
Elk van deze systemen draait ook Solaris op één machine na. Dit is een Mirapoint server. Deze server draait een custom OS. Helaas heeft Mirapoint er ook voor gekozen om de telnetd te customizen.
Een Net::Telnet->login() vanuit perl gaat ervan uit dat de login prompt voldoet aan een bepaalde regular expression. Het komt er simpel op neer dat de telnet server na het maken van een connectie 'login:' of 'username:' moet sturen.
Mirapoint stuurt een 'User:' en maakt hiermee de functie login(); hulpeloos. Om dit soort problemen af te vangen heeft CPAN gelukkig de functie waitfor(); bedacht. Deze vergelijkt de ingekomen string met een regular expression naar keuze. Hierna kan weer antwoord worden gegeven.
Een telnet <adres> vanaf de prompt van het systeem waarop het perl scriptje runt werkt uitstekend. Echter uit de logs van de Mirapoint blijkt dat het script geeneens verbinding kan maken.
Kan het zo zijn dat de telnetd van Mirapoint zo custom is dat het inloggen al anders gaat dan normaal. (telnet(1) werkt zoals gezegd wel gewoon).
Heeft iemand iets soortgelijks meegemaakt ?
Heeft iemand een idee over hoe ik alsnog (geautomatiseerd) een aantal commando's kan uitvoeren op die custom telnet server ? (draait geen normale shell !)
Elk van deze systemen draait ook Solaris op één machine na. Dit is een Mirapoint server. Deze server draait een custom OS. Helaas heeft Mirapoint er ook voor gekozen om de telnetd te customizen.
Een Net::Telnet->login() vanuit perl gaat ervan uit dat de login prompt voldoet aan een bepaalde regular expression. Het komt er simpel op neer dat de telnet server na het maken van een connectie 'login:' of 'username:' moet sturen.
Mirapoint stuurt een 'User:' en maakt hiermee de functie login(); hulpeloos. Om dit soort problemen af te vangen heeft CPAN gelukkig de functie waitfor(); bedacht. Deze vergelijkt de ingekomen string met een regular expression naar keuze. Hierna kan weer antwoord worden gegeven.
Een telnet <adres> vanaf de prompt van het systeem waarop het perl scriptje runt werkt uitstekend. Echter uit de logs van de Mirapoint blijkt dat het script geeneens verbinding kan maken.
Kan het zo zijn dat de telnetd van Mirapoint zo custom is dat het inloggen al anders gaat dan normaal. (telnet(1) werkt zoals gezegd wel gewoon).
Heeft iemand iets soortgelijks meegemaakt ?
Heeft iemand een idee over hoe ik alsnog (geautomatiseerd) een aantal commando's kan uitvoeren op die custom telnet server ? (draait geen normale shell !)