Page 1 of 1

perl ερώτηση

Posted: Fri Jan 28, 2005 8:03 pm
by fotisaueb
Χαιρετώ

Θέλω να φτιάξω ένα script κατά προτίμηση perl αλλά και σε ότι άλλη γλώσσα θέλετε απλα να καταλάβω τη ίδέα.
Θέλω το script να τρέχει το telnet εύκολο αυτό αλλά θέλω μετά να περνάει και εντολές πχ όταν ανοιγεί το session
του telnet να περνάει το username και το password.Γίνεται κάτι τέτοιο?
Γενικότερα γίνεται μέσα από ένα script που καλεί μια διεργασία μετα μέσα απο αυτό το script να περνάω και δεδομένα σε αυτη???

Posted: Fri Jan 28, 2005 11:49 pm
by HdkiLLeR
Ανεξάρτητα απο την γλώσσα αυτό που θέλεις να κάνεις είναι:

1)Να κάνεις invoke μέσα απο ένα prog/script ένα άλλο executable -> εύκολο
2)Να στείλεις σε μια εφαρμογή που περιμένει data απο το stdin data απο ένα άλλο stream(δεδομένου ότι η εφαρμογή δεν έχει κάποιο option ώστε να παίρνει τα data αυτά απο κάποιο file κλπ).->δύσκολο

Εάν το login είχε κάποια παράμετρο για να παίρνει τις εντολές απο πουθενά αλλού θα ήταν πολύ εύκολο. Προγραμματιστικά αυτό μπορεί να γίνει ώς εξής:

1)Είτε αλλάζοντας απο το λειτουργικό σύστημα το stdin με κάποιο άλλο stream με διαφανή τρόπο προς την διεργασία πχ telnet και χρησιμοποιώντας το stream αυτό για να στέλνεις ότι θέλεις στο telnet. Όπως πχ κάνεις ls >> out και αλλάζεις το stdout.
2)Είτε απο το πρόγραμμα που κάνει invoke το telnet,perl script ή οτιδήποτε άλλο, περνόντας κάποιο άλλο file descriptor στο telnet σαν fd 0 που είναι το fd του stdin. Σε C αυτό μπορείς να το κάνεις εύκολα σχετικά, η Perl έχει όλες τις δυνατότητες που σου δίνει η C όσον αφορά τα files οπότε ίσως να το κάνει και αυτό.

Posted: Sun Jan 30, 2005 2:49 am
by crontab
Φώτη μήπως ψάχνεις για HERE Documents ?

Code: Select all

nc $HOST_NAME 110 > /tmp/script.$$ 2> /tmp/erros.$$ <<f@@ck
USER $USER_NAME
PASS $i
quit
f@@ck
HERE Documents υπολογίζει τόσο η perl όσο και το bash μέ ή χωρίς variable interpolation.

Εάν θές να κάνεις το exec το telnet μέσα από c , τότε κάνε dup() licate τον file descriptor.

Posted: Thu Feb 03, 2005 6:35 pm
by AmmarkoV
Γιατί δεν ανοίγεις με sockets μια σύνδεση στο port 23 (Ότι κάνει δηλαδή και το telnet)
και μετά να στέλνεις/λαμβάνεις ότι θές χωρίς να παιδευεσαι?? :???: