Χαιρετώ
Θέλω να φτιάξω ένα script κατά προτίμηση perl αλλά και σε ότι άλλη γλώσσα θέλετε απλα να καταλάβω τη ίδέα.
Θέλω το script να τρέχει το telnet εύκολο αυτό αλλά θέλω μετά να περνάει και εντολές πχ όταν ανοιγεί το session
του telnet να περνάει το username και το password.Γίνεται κάτι τέτοιο?
Γενικότερα γίνεται μέσα από ένα script που καλεί μια διεργασία μετα μέσα απο αυτό το script να περνάω και δεδομένα σε αυτη???
perl ερώτηση
- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
Ανεξάρτητα απο την γλώσσα αυτό που θέλεις να κάνεις είναι:
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 οπότε ίσως να το κάνει και αυτό.
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
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
Φώτη μήπως ψάχνεις για HERE Documents ?
HERE Documents υπολογίζει τόσο η perl όσο και το bash μέ ή χωρίς variable interpolation.
Εάν θές να κάνεις το exec το telnet μέσα από c , τότε κάνε dup() licate τον file descriptor.
Code: Select all
nc $HOST_NAME 110 > /tmp/script.$$ 2> /tmp/erros.$$ <<f@@ck
USER $USER_NAME
PASS $i
quit
f@@ck
Εάν θές να κάνεις το exec το telnet μέσα από c , τότε κάνε dup() licate τον file descriptor.
- AmmarkoV
- Wow! Terabyte level
- Posts: 2838
- Joined: Thu Nov 04, 2004 2:55 pm
- Gender: ♂
- Location: Reloaded @ Santa Friday
- Contact:
Γιατί δεν ανοίγεις με sockets μια σύνδεση στο port 23 (Ότι κάνει δηλαδή και το telnet)
και μετά να στέλνεις/λαμβάνεις ότι θές χωρίς να παιδευεσαι??
και μετά να στέλνεις/λαμβάνεις ότι θές χωρίς να παιδευεσαι??

- Spoiler: εμφάνιση/απόκρυψη
