urllib IOError Exception

Bart Nessux bart_nessux at hotmail.com
Fri Jun 11 19:31:25 CEST 2004


Bart Nessux wrote:
>  From the urllib documentation: "If the connection cannot be made, or if 
> the server returns an error code, the IOError exception is raised. "
> 
> Suppose I have an array of IPs and I want to pass each element of the 
> array to urllib. Basically, I'm just trying to see how many hosts are 
> serveing-up Web pages in a certain IP range. Is there a way in which I 
> can handle the IOError so that the script will continue on to the next 
> host in the array if the host before isn't running a Web server? Below 
> is my code:
> 
> def gen_ip_range():
>    import urllib
>    n = 0
>    hosts = []
>    networks = []
>    while n < 254:
>       n = n + 1
>       networks.append("192.168.%s." %(n))
>    for network in networks:
>       h = 0
>       while h < 254:
>          h = h + 1
>          hosts.append(network+str(h))
>    for host in hosts:
>        f = urllib.urlopen("http://%s" %host)
>        print f.read()
>        f.close()
> gen_ip_range()
> 
> Thanks,
> Bart

I fixed it myself:

        try:
           f = urllib2.urlopen("http://%s" %host)
        except urllib2.URLError:
           print host, "has no http server on  port 80"

Anyway to speed this up??? The timeout per host is several minutes.



More information about the Python-list mailing list