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()
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()
本来没必要用上线程模块的,最近刚刚好学到这了,所以就用上了,写这脚本一是工作上需要,另一个是纯粹为了练手
转载于:https://blog.51cto.com/zeping/1194111