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