using text file to get ip address from hostname

Dan Katorza dkatorza at gmail.com
Thu Sep 20 01:13:29 EDT 2012


בתאריך יום רביעי, 19 בספטמבר 2012 15:28:23 UTC+3, מאת Dan Katorza:
> בתאריך יום רביעי, 19 בספטמבר 2012 12:11:04 UTC+3, מאת Dan Katorza:
> 
> > בתאריך יום רביעי, 19 בספטמבר 2012 11:50:56 UTC+3, מאת Dan Katorza:
> 
> > 
> 
> > > בתאריך יום רביעי, 19 בספטמבר 2012 11:14:29 UTC+3, מאת Chris Angelico:
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > On Wed, Sep 19, 2012 at 5:41 PM, Dan Katorza <dkatorza at gmail.com> wrote:
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > >
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > > Hello again,
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > > I have another question and i hope you will understand me..
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > > Is there any option where you can set the program to go back to lets say the top of the code?
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > > I mean if the program finished the operation and i want to stay in the program and go back ro the start.
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > > after any operation i want the option to do it again , go back to the main menu or full exit from the program, and i want it every time.
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > >
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > > i hope i'm clear :)
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > Yep! Look up the docs and tutorial on "control flow" and "looping
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > constructs". Sounds like what you want here is a 'while' loop.
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > > ChrisA
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > Hi Chris,
> 
> > 
> 
> > > 
> 
> > 
> 
> > > this is my code:
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > #!/usr/bin/env python
> 
> > 
> 
> > > 
> 
> > 
> 
> > > #Get the IP Address
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > import sys, socket
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > print ("\n\n#########################################################")
> 
> > 
> 
> > > 
> 
> > 
> 
> > > print ("#                Get IP from Host v 1.0                 #")
> 
> > 
> 
> > > 
> 
> > 
> 
> > > print ("#########################################################")
> 
> > 
> 
> > > 
> 
> > 
> 
> > > print ("#             Choose from the options below             #")
> 
> > 
> 
> > > 
> 
> > 
> 
> > > print ("#          1- url , 2-File(Text file only.txt)          #")
> 
> > 
> 
> > > 
> 
> > 
> 
> > > print ("#########################################################\n")
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > mchoice = int(raw_input("Please enter your choice> "))
> 
> > 
> 
> > > 
> 
> > 
> 
> > > while mchoice !=1 and  mchoice !=2:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >     print("{0} is not a menu option.".format(mchoice))
> 
> > 
> 
> > > 
> 
> > 
> 
> > >     mchoice = int(raw_input("Please try again> "))
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > if mchoice == 2:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   filename = raw_input("Hello, please enter file name here> ")
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   if filename.endswith(".txt"):
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > >    try:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >     infile = open(filename)
> 
> > 
> 
> > > 
> 
> > 
> 
> > >    except EnvironmentError as e:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >     print(e)
> 
> > 
> 
> > > 
> 
> > 
> 
> > >     sys.exit(1)
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > >    print("\nFile {0} exists!".format(filename))
> 
> > 
> 
> > > 
> 
> > 
> 
> > >    print("\nGetting IP addresses for hosts")
> 
> > 
> 
> > > 
> 
> > 
> 
> > >    print("\n")
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   else:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >        print("{0} is not a Text file.".format(filename))
> 
> > 
> 
> > > 
> 
> > 
> 
> > >        sys.exit(1)
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   for line in infile:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >     hostname = line.strip()
> 
> > 
> 
> > > 
> 
> > 
> 
> > >     try:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >         ip_address = socket.gethostbyname(hostname)
> 
> > 
> 
> > > 
> 
> > 
> 
> > >     except EnvironmentError as e:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >         print("Couldn't find IP address for {0}: {1}".format(hostname, e))
> 
> > 
> 
> > > 
> 
> > 
> 
> > >         continue
> 
> > 
> 
> > > 
> 
> > 
> 
> > >     print("IP address for {0} is {1}.".format(hostname, ip_address))
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   else:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >     print ("\nFinished the operation")
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > if mchoice == 1:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   murl = raw_input("Enter URL here> ")
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   try:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >       print("Checking URL...")
> 
> > 
> 
> > > 
> 
> > 
> 
> > >       ip_address = socket.gethostbyname(murl)
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   except EnvironmentError as d:
> 
> > 
> 
> > > 
> 
> > 
> 
> > >       print(d)
> 
> > 
> 
> > > 
> 
> > 
> 
> > >       sys.exit(1)
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   print("Valid URL")
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   print("\nIP address for {0} is {1}.".format(murl, ip_address))
> 
> > 
> 
> > > 
> 
> > 
> 
> > >   print ("\nFinished the operation")
> 
> > 
> 
> > > 
> 
> > 
> 
> > > =====================================================================
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > now where it says Finsihed the operation i want it to show (another search /main menu/exit program)
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > i know about the while loop , but forgive me i just don't have a clue how to use it for this situation.
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > 
> 
> > 
> 
> > > i don't want you to give me the code:) just the idea.
> 
> > 
> 
> > > 
> 
> > 
> 
> > > i did read the section about the while loop but still i do not know how to use it in this situation.
> 
> > 
> 
> > > 
> 
> > 
> 
> > > thanks.
> 
> > 
> 
> > 
> 
> > 
> 
> > o.k a giant while loop :)
> 
> > 
> 
> > thanks.
> 
> 
> 
> hi, 
> 
> found a solution,
> 
> it's not quite like Chris advised but it works.
> 
> 
> 
> #!/usr/bin/env python
> 
> #Get the IP Address
> 
> 
> 
> import sys, socket, os
> 
> 
> 
> def restart_program():
> 
>     python = sys.executable
> 
>     os.execl(python, python, * sys.argv)
> 
> 
> 
> print ("\n\n#########################################################")
> 
> print ("#                Get IP from Host v 1.0                 #")
> 
> print ("#########################################################")
> 
> print ("#             Choose from the options below             #")
> 
> print ("#          1- url , 2-File(Text file only.txt)          #")
> 
> print ("#########################################################\n")
> 
> 
> 
> mchoice = int(raw_input("Please enter your choice> "))
> 
> while mchoice !=1 and  mchoice !=2:
> 
>     print("{0} is not a menu option.".format(mchoice))
> 
>     mchoice = int(raw_input("Please try again> "))
> 
> 
> 
> 
> 
> while mchoice == 2:
> 
>     filename = raw_input("Please enter file name here> ")
> 
>     if filename.endswith(".txt"):
> 
> 
> 
>         try:
> 
>             infile = open(filename)
> 
>         except EnvironmentError as e:
> 
>             print(e)
> 
>             sys.exit(1)
> 
> 
> 
>         print("\nFile {0} exists!".format(filename))
> 
>         print("\nGetting IP addresses for hosts")
> 
>         print("\n")
> 
>     else:
> 
>         print("{0} is not a Text file.".format(filename))
> 
>         sys.exit(1)
> 
>     for line in infile:
> 
>         hostname = line.strip()
> 
>         try:
> 
>             ip_address = socket.gethostbyname(hostname)
> 
>         except EnvironmentError as e:
> 
>             print("Couldn't find IP address for {0}: {1}".format(hostname, e))
> 
>             continue
> 
>         print("IP address for {0} is {1}.".format(hostname, ip_address))
> 
>     else:
> 
>         print ("\nFinished the operation")
> 
>         print ("A=another search, M=main menu, E=exit")
> 
> 
> 
>         waction=raw_input("Please choose your action > ")
> 
> 
> 
>         while waction !='A' and waction !='M' and waction !='E':
> 
>             print("{0} is not a valid action.".format(waction))
> 
>             waction=raw_input("Please try again> ")
> 
>         if waction =='E':
> 
>             sys.exit(1)
> 
>         if waction =='A':
> 
>             continue
> 
>         if waction =='M':
> 
>             print ("#########################################################")
> 
>             print ("#             Choose from the options below             #")
> 
>             print ("#          1- url , 2-File(Text file only.txt)          #")
> 
>             print ("#########################################################\n")
> 
> 
> 
>             mchoice = int(raw_input("Please enter your choice> "))
> 
>             while mchoice !=1 and  mchoice !=2:
> 
>                 print("{0} is not a menu option.".format(mchoice))
> 
>                 mchoice = int(raw_input("Please try again> "))
> 
> 
> 
> 
> 
> while mchoice == 1:
> 
>     murl = raw_input("Enter URL here> ")
> 
>     try:
> 
>         print("Checking URL...")
> 
>         ip_address = socket.gethostbyname(murl)
> 
>     except EnvironmentError as d:
> 
>         print(d)
> 
>         sys.exit(1)
> 
>     print("Valid URL")
> 
>     print("\nIP address for {0} is {1}.".format(murl, ip_address))
> 
>     print ("\nFinished the operation")
> 
>     print ("A=another search, M=main menu, E=exit")
> 
> 
> 
>     waction=raw_input("Please choose your action > ")
> 
> 
> 
>     while waction !='A' and waction !='M' and waction !='E':
> 
>         print("{0} is not a valid action.".format(waction))
> 
>         waction=raw_input("Please try again> ")
> 
>     if waction =='E':
> 
>         sys.exit(1)
> 
>     if waction =='A':
> 
>         continue
> 
>     if waction =='M':
> 
>         restart_program()

Hi Dave,
thanks for your comment.
please note this is only my 6th day of programing in any language ever and i'm tutoring  my self.
I know this code is too long and lousy for a simple task, but i guess this is part of my learning process.
3 days ago i already figured out that is too long and probably there is better solution, but I decided to try and work it out anyway just for learning and dealing with a bad code.
anyway what i realized is before i want to write a program/task , i need to write what i want before and plan it ahead.

anyway thanks everyone.



More information about the Python-list mailing list