using text file to get ip address from hostname

Discussion in 'Python' started by dkatorza@gmail.com, Sep 12, 2012.

  1. Guest

    hello ,

    i'm new to Python and i searched the web and could not find an answer for my issue.

    i need to get an ip address from list of hostnames which are in a textfile.

    this is what i have so far
    --------------------------------------------------------------------------
    #!/usr/bin/env python
    #Get the IP Address

    import socket
    hostname = 'need it to read from a text file'
    addr = socket.gethostbyname(hostname)
    print 'The address of ', hostname, 'is', addr

    ---------------------------------------------------------------------------

    any idea ?
    sorry for my english

    thanks.
     
    , Sep 12, 2012
    #1
    1. Advertising

  2. On Thu, Sep 13, 2012 at 12:24 AM, <> wrote:
    > i'm new to Python and i searched the web and could not find an answer for my issue.
    >
    > i need to get an ip address from list of hostnames which are in a textfile.


    This is sounding like homework, so I'll just give you a basic pointer.

    You have there something that successfully resolves one hostname to an
    IP address. Now you want to expand that to reading an entire file of
    them and resolving them all. Presumably you need to produce a list of
    IP addresses; check the question as to whether you need to create a
    file, or output to the screen, or something else.

    What you want, here, is to open a file and iterate over it. The most
    convenient way would be to have one hostname per line and iterate over
    the lines of the file. Check out these pages in the Python docs
    (you're using Python 2 so I'm going with Python 2.7.3 documentation):

    Opening a file:
    http://docs.python.org/library/functions.html#open
    Ensuring that it'll be closed when you're done:
    http://docs.python.org/reference/compound_stmts.html#the-with-statement
    Looping over an iterable:
    http://docs.python.org/tutorial/controlflow.html#for-statements

    See where that takes you; in fact, all of
    http://docs.python.org/tutorial/ is worth reading, if you haven't
    already.

    Have fun, enjoy Python!

    ChrisA
     
    Chris Angelico, Sep 12, 2012
    #2
    1. Advertising

  3. Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 12 בספטמבר 2012 17:24:50 UTC+3, מ×ת :
    > hello ,
    >
    >
    >
    > i'm new to Python and i searched the web and could not find an answer formy issue.
    >
    >
    >
    > i need to get an ip address from list of hostnames which are in a textfile.
    >
    >
    >
    > this is what i have so far
    >
    > --------------------------------------------------------------------------
    >
    > #!/usr/bin/env python
    >
    > #Get the IP Address
    >
    >
    >
    > import socket
    >
    > hostname = 'need it to read from a text file'
    >
    > addr = socket.gethostbyname(hostname)
    >
    > print 'The address of ', hostname, 'is', addr
    >
    >
    >
    > ---------------------------------------------------------------------------
    >
    >
    >
    > any idea ?
    >
    > sorry for my english
    >
    >
    >
    > thanks.


    thank you ChrisA
    it's not really homework, i found a lab exercise on the web and i;m trying to study with it. maybe not the most efficient way.

    i have a file with hostnames ordered line by line.

    i will check the sources and will get back with outcome.

    once again , Thanks,
     
    , Sep 12, 2012
    #3
  4. Terry Reedy Guest

    On 9/12/2012 10:41 AM, wrote:


    > it's not really homework, i found a lab exercise on the web
    > and i;m trying to study with it. maybe not the most efficient way.
    >
    > i have a file with hostnames ordered line by line.


    Key fact for this exercise: open files are iterable.
    So your top level structure is...

    for line in open(<hostname file>):
    <process hostname in line>

    --
    Terry Jan Reedy
     
    Terry Reedy, Sep 12, 2012
    #4
  5. > i need to get an ip address from list of hostnames which are in a textfile.
    >
    > this is what i have so far
    > --------------------------------------------------------------------------
    > #!/usr/bin/env python
    > #Get the IP Address
    >
    > import socket
    > hostname = 'need it to read from a text file'
    > addr = socket.gethostbyname(hostname)
    > print 'The address of ', hostname, 'is', addr


    $ cat hostnames
    google.com
    microsoft.com
    facebook.com

    $ python3
    Python 3.2.3 (default, May 3 2012, 15:51:42)
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import socket
    >>> for line in open("hostnames"):

    .... hostname = line.strip()
    .... print("IP address for {0} is {1}.".format(hostname,
    socket.gethostbyname(hostname)))
    ....
    IP address for google.com is 74.125.225.33.
    IP address for microsoft.com is 64.4.11.37.
    IP address for facebook.com is 69.171.237.16.
     
    Jason Friedman, Sep 13, 2012
    #5
  6. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 12 בספטמבר 2012 17:24:50 UTC+3, מ×ת Dan Katorza:
    > hello ,
    >
    >
    >
    > i'm new to Python and i searched the web and could not find an answer formy issue.
    >
    >
    >
    > i need to get an ip address from list of hostnames which are in a textfile.
    >
    >
    >
    > this is what i have so far
    >
    > --------------------------------------------------------------------------
    >
    > #!/usr/bin/env python
    >
    > #Get the IP Address
    >
    >
    >
    > import socket
    >
    > hostname = 'need it to read from a text file'
    >
    > addr = socket.gethostbyname(hostname)
    >
    > print 'The address of ', hostname, 'is', addr
    >
    >
    >
    > ---------------------------------------------------------------------------
    >
    >
    >
    > any idea ?
    >
    > sorry for my english
    >
    >
    >
    > thanks.


    hello again friends,
    thanks for everyone help on this.
    i guess i figured it out in two ways.
    the second one i prefer the most.

    i will appreciate if someone can give me some tips.
    thanks again

    so...
    -------------------------------------------------------------
    First
    -------------------------------------------------------------
    #!/usr/bin/env python
    #Get the IP Address


    print("hello, please enter file name here >"),
    import socket
    for line in open(raw_input()):
    hostname = line.strip()
    print("IP address for {0} is {1}.".format(hostname,socket.gethostbyname(hostname)))

    ------------------------------------------------------------
    second
    ------------------------------------------------------------
    #!/usr/bin/env python
    #Get the IP Address

    import os

    print("Hello, please enter file name here >"),
    FILENAME = raw_input()
    if os.path.isfile(FILENAME):
    print("\nFile Exist!")
    print("\nGetting ip from host name")
    print("\n")
    import socket
    for line in open (FILENAME):
    hostname = line.strip()
    print("IP address for {0} is {1}.".format(hostname,socket.gethostbyname(hostname)))
    else:
    print ("\nFinished the operation")
    else:
    print ("\nFIle is missing or is not reasable"),
    ~
     
    Dan Katorza, Sep 15, 2012
    #6
  7. Hans Mulder Guest

    On 15/09/12 18:20:42, Dan Katorza wrote:
    > בת×ריך ×™×•× ×¨×‘×™×¢×™, 12 בספטמבר 2012 17:24:50 UTC+3, מ×ת Dan Katorza:
    >> hello ,
    >>
    >>
    >>
    >> i'm new to Python and i searched the web and could not find an answer for my issue.
    >>
    >>
    >>
    >> i need to get an ip address from list of hostnames which are in a textfile.
    >>
    >>
    >>
    >> this is what i have so far
    >>
    >> --------------------------------------------------------------------------
    >>
    >> #!/usr/bin/env python
    >>
    >> #Get the IP Address
    >>
    >>
    >>
    >> import socket
    >>
    >> hostname = 'need it to read from a text file'
    >>
    >> addr = socket.gethostbyname(hostname)
    >>
    >> print 'The address of ', hostname, 'is', addr
    >>
    >>
    >>
    >> ---------------------------------------------------------------------------
    >>
    >>
    >>
    >> any idea ?
    >>
    >> sorry for my english
    >>
    >>
    >>
    >> thanks.

    >
    > hello again friends,
    > thanks for everyone help on this.
    > i guess i figured it out in two ways.
    > the second one i prefer the most.
    >
    > i will appreciate if someone can give me some tips.
    > thanks again
    >
    > so...
    > -------------------------------------------------------------
    > First
    > -------------------------------------------------------------
    > #!/usr/bin/env python
    > #Get the IP Address
    >
    >
    > print("hello, please enter file name here >"),


    Instead of printing this string, you can pass it as the
    argument to raw_input:

    for line in open(raw_input("hello, please enter file name here> ")):

    Cosmetically, I'd prefer a space after the '>'.

    > import socket


    PEP 8 recommends putting all imports at the top of the file, like you
    do in your second script.

    > for line in open(raw_input()):
    > hostname = line.strip()
    > print("IP address for {0} is {1}.".format(hostname,socket.gethostbyname(hostname)))


    To my mind, this line does two things: it finds the IP address and
    prints it. I think it would be more readable to do these on separate
    lines:

    ip_address = socket.gethostbyname(hostname)
    print("IP address for {0} is {1}.".format(hostname, ip_address)

    This forces you to find a good name for the value returned
    by gethostbyname, which I consider a Good Thing (tm).

    PEP 8 recommends that lines should not be longer than 80
    characters. Your line is longer than that; splitting it
    in two conceptual steps nicely solves that issue as well.

    > ------------------------------------------------------------
    > second
    > ------------------------------------------------------------
    > #!/usr/bin/env python
    > #Get the IP Address
    >
    > import os
    >
    > print("Hello, please enter file name here >"),
    > FILENAME = raw_input()


    PEP 8 recommends all upper case for constants, for example
    socket.IPPROTO_IPV6. The filename here is not a hard-wired
    constant, so it should be in lower case.

    > if os.path.isfile(FILENAME):


    Your first script allowed me to enter "/dev/tty" at the prompt,
    and then type a bunch of hostnames and an end-of-file character.
    This script reports "FIle is missing or not reasable", because
    /dev/tty is not a regular file. I think the message should be
    "File is missing or not readable or not a regular file".

    I'm always annoyed when I get an error message with several
    "or"s in it. I prefer programs that figure out which of the
    three potential issues is the case, and mention only one cause.

    > print("\nFile Exist!")
    > print("\nGetting ip from host name")
    > print("\n")
    > import socket
    > for line in open (FILENAME):
    > hostname = line.strip()
    > print("IP address for {0} is {1}.".format(hostname,socket.gethostbyname(hostname)))
    > else:
    > print ("\nFinished the operation")
    > else:
    > print ("\nFIle is missing or is not reasable"),


    You don't want a comma at the end of this line: it messes
    up the next shell prompt.

    Also, this line a rather far away from the test that triggers it.

    How about:

    filename = raw_input("Hello, please enter file name here> ")
    if not os.path.isfile(filename):
    if not os.exist(filename):
    print("\nFile {} does not exist")
    else:
    print("\nFile {} is not a regular file")
    sys.exit(1)

    print("\nFile {} exists", filename)
    # etc.

    Or you could skip the whole 'os' thing and use a try/except
    construct instead:

    #!/usr/bin/env python
    #Get the IP Address

    import sys, socket

    filename = raw_input("Hello, please enter file name here> ")
    try:
    infile = open(filename)
    except EnvironmentError as e:
    print(e)
    sys.exit(1)

    print("\nFile {} exists!".format(filename))
    print("\nGetting IP addresses for hosts")
    print("\n")
    for line in infile:
    hostname = line.strip()
    try:
    ip_address = socket.gethostbyname(hostname)
    except EnvironmentError as e:
    print("Couldn't find IP address for {}: {}".format(hostname, e))
    continue
    print("IP address for {0} is {1}.".format(hostname, ip_address))
    else:
    print ("\nFinished the operation")


    Using try/except has the advantage that it will correctly
    report issues you didn't think about (for example, if file
    exists, but you don't have permission to read it).


    Hope this helps

    -- HansM
     
    Hans Mulder, Sep 15, 2012
    #7
  8. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 12 בספטמבר 2012 17:24:50 UTC+3, מ×ת Dan Katorza:
    > hello ,
    >
    >
    >
    > i'm new to Python and i searched the web and could not find an answer formy issue.
    >
    >
    >
    > i need to get an ip address from list of hostnames which are in a textfile.
    >
    >
    >
    > this is what i have so far
    >
    > --------------------------------------------------------------------------
    >
    > #!/usr/bin/env python
    >
    > #Get the IP Address
    >
    >
    >
    > import socket
    >
    > hostname = 'need it to read from a text file'
    >
    > addr = socket.gethostbyname(hostname)
    >
    > print 'The address of ', hostname, 'is', addr
    >
    >
    >
    > ---------------------------------------------------------------------------
    >
    >
    >
    > any idea ?
    >
    > sorry for my english
    >
    >
    >
    > thanks.


    Hi Hans,
    thank you very much for the tips.
    as i mentioned before I'm new to python and I'm trying to learn it step by step.
    thank you for showing me other ways, i will explore them.
     
    Dan Katorza, Sep 15, 2012
    #8
  9. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×שון, 16 בספטמבר 2012 01:43:31 UTC+3, מ×ת Dan Katorza:
    > בת×ריך ×™×•× ×¨×‘×™×¢×™, 12 בספטמבר 2012 17:24:50 UTC+3, מ×ת Dan Katorza:
    >
    > > hello ,

    >
    > >

    >
    > >

    >
    > >

    >
    > > i'm new to Python and i searched the web and could not find an answer for my issue.

    >
    > >

    >
    > >

    >
    > >

    >
    > > i need to get an ip address from list of hostnames which are in a textfile.

    >
    > >

    >
    > >

    >
    > >

    >
    > > this is what i have so far

    >
    > >

    >
    > > --------------------------------------------------------------------------

    >
    > >

    >
    > > #!/usr/bin/env python

    >
    > >

    >
    > > #Get the IP Address

    >
    > >

    >
    > >

    >
    > >

    >
    > > import socket

    >
    > >

    >
    > > hostname = 'need it to read from a text file'

    >
    > >

    >
    > > addr = socket.gethostbyname(hostname)

    >
    > >

    >
    > > print 'The address of ', hostname, 'is', addr

    >
    > >

    >
    > >

    >
    > >

    >
    > > ---------------------------------------------------------------------------

    >
    > >

    >
    > >

    >
    > >

    >
    > > any idea ?

    >
    > >

    >
    > > sorry for my english

    >
    > >

    >
    > >

    >
    > >

    >
    > > thanks.

    >
    >
    >
    > Hi Hans,
    >
    > thank you very much for the tips.
    >
    > as i mentioned before I'm new to python and I'm trying to learn it step by step.
    >
    > thank you for showing me other ways, i will explore them.


    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 :)
     
    Dan Katorza, Sep 19, 2012
    #9
  10. On Wed, Sep 19, 2012 at 5:41 PM, Dan Katorza <> 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
     
    Chris Angelico, Sep 19, 2012
    #10
  11. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 19 בספטמבר 2012 11:14:29 UTC+3, מ×ת Chris Angelico:
    > On Wed, Sep 19, 2012 at 5:41 PM, Dan Katorza <> 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.
     
    Dan Katorza, Sep 19, 2012
    #11
  12. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 19 בספטמבר 2012 11:14:29 UTC+3, מ×ת Chris Angelico:
    > On Wed, Sep 19, 2012 at 5:41 PM, Dan Katorza <> 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.
     
    Dan Katorza, Sep 19, 2012
    #12
  13. On Wed, Sep 19, 2012 at 6:50 PM, Dan Katorza <> wrote:
    > i know about the while loop , but forgive me i just don't have a clue how to use it for this situation.


    You've already used one. What you need to do is surround your entire
    code with the loop, so that as soon as it gets to the bottom, it goes
    back to the top.

    Tip: You'll be indenting the bulk of your code.

    ChrisA
     
    Chris Angelico, Sep 19, 2012
    #13
  14. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 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 <> 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 themain 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 howto 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.
     
    Dan Katorza, Sep 19, 2012
    #14
  15. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 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 <> 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 themain 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 howto 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.
     
    Dan Katorza, Sep 19, 2012
    #15
  16. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 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 <> 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 howto 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()
     
    Dan Katorza, Sep 19, 2012
    #16
  17. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 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 <> 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 howto 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()
     
    Dan Katorza, Sep 19, 2012
    #17
  18. Dave Angel Guest

    On 09/19/2012 08:28 AM, Dan Katorza wrote:
    > בת×ריך ×™×•× ×¨×‘×™×¢×™, 19 בספטמבר 2012 12:11:04 UTC+3, מ×ת Dan Katorza:
    >> <SNIP>
    >> hi, ll like
    >> found a solution,
    >> it's not quite like Chris advised but it works.


    Not at all like Chris advised. But it also doesn't help you understand
    programming. Two concepts you're going to have to get a lot more
    comfortable with, in Python, or in some other language. One is loops,
    and the other is functions.
    >> #!/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()
    >>
    >>
    >>
    >>

    This is one enormous top-level code, and when you needed to enclose it
    in a loop, your answer is to start a new process! You also duplicate
    quite a few lines, rather than making a function for them, and calling
    it from two places.


    --

    DaveA
     
    Dave Angel, Sep 19, 2012
    #18
  19. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 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 <> 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 tothe 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 cluehow 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 learningand dealing with a bad code.
    anyway what i realized is before i want to write a program/task , i need towrite what i want before and plan it ahead.

    anyway thanks everyone.
     
    Dan Katorza, Sep 20, 2012
    #19
  20. Dan Katorza Guest

    בת×ריך ×™×•× ×¨×‘×™×¢×™, 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 <> 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 tothe 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 cluehow 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 learningand dealing with a bad code.
    anyway what i realized is before i want to write a program/task , i need towrite what i want before and plan it ahead.

    anyway thanks everyone.
     
    Dan Katorza, Sep 20, 2012
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. AWieminer
    Replies:
    0
    Views:
    776
    AWieminer
    Jul 12, 2005
  2. vi
    Replies:
    5
    Views:
    16,905
    Roedy Green
    Sep 19, 2005
  3. Tim Veldhuizen
    Replies:
    2
    Views:
    1,037
    Tim Veldhuizen
    Jul 24, 2003
  4. Microlong®
    Replies:
    3
    Views:
    196
    Evertjan.
    Oct 12, 2005
  5. Victor Reyes
    Replies:
    1
    Views:
    124
    MonkeeSage
    Dec 27, 2007
Loading...

Share This Page