using text file to get ip address from hostname

Dan Katorza dkatorza at gmail.com
Wed Sep 19 08:28:19 EDT 2012


בתאריך יום רביעי, 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()







More information about the Python-list mailing list