Αρπαγή εξόδου της εντολής telnet

Marios Zindilis marios at zindilis.com
Mon Jan 23 19:16:13 UTC 2012


Μάλιστα, αυτό ακριβώς, έξοχα γιατρέ μου! :)

Στο σενάριο εντολών που έφτιαξα, τελικά το υλοποίησα με το NetCat, το 
οποίο ανοίγει συνδέσεις δικτύου σε οποιαδήποτε θύρα, δηλαδή αντί για:

telnet 192.168.1.1

κάνεις:

nc 192.168.1.1 23

Όπου 23 είναι η θύρα του telnet (από προεπιλογή). Το NetCat έχει τη 
διαφορά ότι βγάζει το αποτέλεσμα στην πρότυπη έξοδο (stdout) άρα μπορεί 
κανείς να το «αρπάξει» σε μια μεταβλητή του Bash ή να το ανακατευθύνει 
σε ένα αρχείο κειμένου.

Πληροφοριακά, ο σκοπός του σεναρίου εντολών είναι να εκτελεί την ίδια 
εργασία (για παράδειγμα να λαμβάνει αντίγραφο ασφαλείας) από συσκευές 
δικτύου οι οποίες είναι διαφορετική μάρκα η κάθε μια, άρα και έχουν 
διαφορετικές εντολές για το ίδιο πράγμα. Αξιολογώντας την προτροπή της 
κάθε κάθε συσκευής στο telnet, το σενάριο αποφασίζει ποιές εντολές θα 
εκτελέσει σε κάθε συσκευή.

On 01/23/2012 05:10 PM, Savvas Radevic wrote:
> Δηλαδή χρειάζεσαι μόνο αυτό το.. telnet prompt;
>
> #!/usr/bin/python
> from subprocess import *
> command = ["/usr/bin/telnet", "192.168.1.1"]
> p = Popen(command, stdin=PIPE, stderr=PIPE, stdout=PIPE)
> # Grabs the stdout and kills the process
> out = p.communicate()[0]
> print(p.wait())
> msg = "Command {0}\nOutput: {1}"
> print(msg.format(" ".join(command), out))
>


-- 
Marios Zindilis



More information about the Ubuntu-gr mailing list