#coding=utf-8

import os
import httplib
import socket

dictlist ={};

def ReadHost():
    hosts = [];
    obn = open('d:/sss.txt', 'rb');
    for line in obn:
        #sometime you should filter \r\n
        line = line.strip('\n')
        hosts.append(line)
    obn.close();
    return hosts;

def GetWebStatus(host):
    try:
        conn = httplib.HTTPConnection(host)
        conn.request('GET','url')
        result = conn.getresponse()
        resultStatus= result.status
       # print(host,resultStatus)
        conn.close()
        if(resultStatus != 200):
            return 0
        else:
            return 1
    except httplib.HTTPException,e:
        return 0

def SysDNS():
    hosts = ReadHost();

    for host in hosts:
        #print(host)
        try:

            if (GetWebStatus(host) == 0):
                continue
            myaddrs = socket.getaddrinfo(host,None)
            for eachaddr in myaddrs:
                addrs = eachaddr[4][0]
                #print((addrs))
                if(dictlist.has_key(addrs)):
                    break;
                else:
                    dictlist[addrs] = host;
                    #print(host)
                    break;
        except socket.herror,e:
            continue;
        except socket.gaierror,e1:
            continue;
        except Exception as e2:
            print(e2)
            continue



def showDict():
    fw = open("d:/out.txt","wb");
    for (k,v) in dictlist.items():
        #print(k,v)
        fw.writelines(v);
    fw.close();

if __name__ == "__main__":
    SysDNS();
    showDict();

url可能会出现的错误:

[Errno 10060]
[Errno 10061]
[Errno 10054]
[Errno 10053]

posted on 2014-07-14 13:35  小白闯天下  阅读(377)  评论(0编辑  收藏  举报