[Tutor] Some Python difficulties ..
Peter Otten
__peter__ at web.de
Sun Jul 10 05:00:40 EDT 2016
Chan Cheuk wrote:
> I would like to know whether my designed Python program below for Linux
> route command could not run and show the output onto the textarea that I
> planned originally.
When you run the script and click on the Run! button, what do you see?
Read the traceback carefully and come back for more hints if you cannot fix
the problem yourself.
Look at the subprocess module
https://docs.python.org/2.7/library/subprocess.html
for ways to run an external command and capture its output in a string
variable.
Once the script works as desired except that it prints to the command line
via print statements rather than into the Text widget search your tkinter
documentation for a way to insert() text into the widget and replace the
print statements with these method calls.
> The source code is:
>
>
> #!/usr/bin/python
> # lb => Label
> # btn => button
> # tb => textbox / entry
> # txtarea => multiline text
> # cb => Checkbox
> # rb => radiobutton
> # e.g. lb_ipaddress, btn_start, tb_output
>
> from Tkinter import *
>
> root = Tk()
> root.title("netcat(nc) GUI")
>
> option_a = IntVar()
> option_b = IntVar()
> option_c = IntVar()
> option_d = IntVar()
>
> def startfping():
> print "Start nc button clicked!"
> fpingcommand = command_gen()
> print "\tnetcat command: " + nccommand
> commandresult = runcommand()
> print "\tCommand output: " + commandresult
>
> def command_gen():
> print "Generate the netcat command details!"
> command = "netcat "
>
> print "option a: " + str(option_a.get())
> if option_a.get():
> command = command + "-a "
>
> print "option b: " + str(option_b.get())
> if option_b.get():
> command = command + "-c 1 "
>
> print "option c: " + str(option_c.get())
> if option_c.get():
> command = command + "-q "
>
> command = command + tb_ipaddress.get()
>
> print "option d: " + str(option_d.get())
> if option_d.get():
> command = "netcat -h"
>
> result = command
> return result
>
> def runcommand():
> print "Run command and get return!"
> result = "Get it"
> return result
>
> lb_ipaddress = Label(root, text="IP Address(s):", fg="orange",
> justify=LEFT) lb_ipaddress.grid(row=0, column=0, padx=2, pady=5, sticky=W)
>
> tb_ipaddress = Entry(root, width=40, bd=5)
> tb_ipaddress.grid(row=0, column=1, columnspan=3, padx=5, pady=5)
>
> cb_option_a = Checkbutton(root, text = "Telnet details",variable=option_a,
> justify=LEFT) cb_option_a.grid(row=1, column=0, columnspan=2, padx=5,
> pady=5, sticky=W)
> # option a => -a
>
> cb_option_b = Checkbutton(root, text="Port scanning", variable=option_b,
> justify=LEFT) cb_option_b.grid(row=1, column=2, columnspan=2, padx=5,
> pady=5, sticky=W)
> # option b => -c 1
>
> cb_option_c = Checkbutton(root, text="Remote Shell/Backdoor",
> variable=option_c, justify=LEFT) cb_option_c.grid(row=2, column=0,
> columnspan=2, padx=5, pady=5, sticky=W)
> # option c => -q
>
> cb_option_d = Checkbutton(root, text="Reverse Shells", variable=option_d,
> justify=LEFT) cb_option_d.grid(row=2, column=2, columnspan=2, padx=5 ,
> pady=5, sticky=W)
> # option d => -h (but exclude all other options and IP address)
>
> btn_run = Button(root, width = 10, text="Run!",justify=RIGHT,
> command=startfping) btn_run.grid(row=3, column=3, padx=5, pady=5, stick=E)
>
> lb_commandoutput = Label(root, text="Command Output:", fg="red",
> justify=LEFT) lb_commandoutput.grid(row=4, column=0, padx=2, pady=0)
>
> txtarea_output = Text(root, height=10, width=60)
> txtarea_output.grid(row=5, column=0, columnspan=4, padx=10, pady=10)
>
> root.mainloop()
>
>
> Thank you for your kindly attention if you tell me how to fix it :'(
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list