perl ερώτηση

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
fotisaueb
Kilobyte level
Kilobyte level
Posts: 230
Joined: Fri Apr 30, 2004 8:25 pm

perl ερώτηση

Post by fotisaueb » Fri Jan 28, 2005 8:03 pm

Χαιρετώ

Θέλω να φτιάξω ένα script κατά προτίμηση perl αλλά και σε ότι άλλη γλώσσα θέλετε απλα να καταλάβω τη ίδέα.
Θέλω το script να τρέχει το telnet εύκολο αυτό αλλά θέλω μετά να περνάει και εντολές πχ όταν ανοιγεί το session
του telnet να περνάει το username και το password.Γίνεται κάτι τέτοιο?
Γενικότερα γίνεται μέσα από ένα script που καλεί μια διεργασία μετα μέσα απο αυτό το script να περνάω και δεδομένα σε αυτη???
User avatar
HdkiLLeR
Venus Project Founder
Venus Project Founder
Posts: 4356
Joined: Tue Jan 27, 2004 4:41 pm
Academic status: Alumnus/a
Gender:
Location: New York, NY
Contact:

Post by HdkiLLeR » Fri Jan 28, 2005 11:49 pm

Ανεξάρτητα απο την γλώσσα αυτό που θέλεις να κάνεις είναι:

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 οπότε ίσως να το κάνει και αυτό.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
crontab
byte level
byte level
Posts: 53
Joined: Sat May 01, 2004 7:10 pm
Contact:

Post by crontab » Sun Jan 30, 2005 2:49 am

Φώτη μήπως ψάχνεις για 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.
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Thu Feb 03, 2005 6:35 pm

Γιατί δεν ανοίγεις με sockets μια σύνδεση στο port 23 (Ότι κάνει δηλαδή και το telnet)
και μετά να στέλνεις/λαμβάνεις ότι θές χωρίς να παιδευεσαι?? :???:
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
Post Reply

Return to “Προγραμματισμός”