using text file to get ip address from hostname
Thomas Rachel
nutznetz-0c1b6768-bfa9-48d5-a470-7603bd3aa915 at spamschutz.glglgl.de
Mon Sep 17 16:37:12 EDT 2012
Am 15.09.2012 18:20 schrieb Dan Katorza:
> 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"),
> ~
Comparing these, the first one wins if you catch and process exceptions.
It is easier to ask for forgiveness than to get permission (EAFP,
http://en.wikipedia.org/wiki/EAFP).
Bit I wonder that no one has mentionned that
socket.gethostbyname(hostname) is quite old-age because it only returns
IPv4 addresses (resp. only one of them).
OTOH, socket.getaddrinfo(hostname, 0, 0, socket.SOCK_STREAM) gives you a
list of parameter tuples for connecting.
So which way you go above, you should change the respective lines to
for line in ...:
hostname = line.strip()
for target in socket.getaddrinfo(hostname, 0, socket.AF_UNSPEC,
socket.SOCK_STREAM):
print("IP address for {0} is {1}.".format(hostname,
target[4][0]))
Thomas
More information about the Python-list
mailing list