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