import thread
import socket
def getIP(name,lock):
       print '[%s]:%s\n'%(name,socket.gethostbyname(name))
       lock.release() #释放线程锁

def main():
 #读取存放域名的文件,文件是按一行一个域名的方式记录的
       files = open(r'C:\Users\Administrator\Desktop\python_script\name.txt','r')
       line = files.readlines()
 #定义一个域名的空列表
       hostname = []
 #定义线程锁的空列表
       locks = []
       for i in line:
   #按行读取文件,由于每行结尾都有一个换行符'\n',需要把'\n'去掉,否则域名不能被识别
               if i.endswith('\n'):
                       i = i.split('\n')[0]
                       #print i
                       hostname.append(i)
               else:
                       hostname.append(i)
       #获取域名的数量,添加线程锁
       allhostname = len(hostname)
       for a in range(allhostname):
               #分配线程锁
               lock = thread.allocate_lock()
               #获取线程锁的对象
               lock.acquire()
               #添加进空列表
               locks.append(lock)

       for b in range(allhostname):
               #启动线程
               thread.start_new_thread(getIP,(hostname[b],locks[b]))


       for c in range(allhostname):
               while locks[c].locked():
                       pass

main()
本来没必要用上线程模块的,最近刚刚好学到这了,所以就用上了,写这脚本一是工作上需要,另一个是纯粹为了练手