查看“Ping.py”的源代码
←
Ping.py
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
<pre> from __future__ import print_function import subprocess import threading # ping -c 1 ip_address def is_reacheable(ip): if subprocess.call(["ping","-c","1",ip]): print("{0} is unreacheable".format(ip)) else: print("{0} is alive".format(ip)) ''' subprocess.call 成功是返回0,而python中 0 是不成功 def is_reacheable(ip): if subprocess.call(["ping","-c","1",ip]): print("{0} is alive".format(ip)) else: print("{0} is unreacheable".format(ip)) ''' def main(): with open('ips.txt') as f: lines = f.readlines() threads = [] for line in lines: thr = threading.Thread(target=is_reacheable,args=(line,)) thr.start() threads.append(thr) for thr in threads: thr.join() #阻塞直到队列中的所有项目全被 删除和处理为止 if __name__ == '__main__': main() ''' 解说 print_function 新的print是一个函数,如果导入此特性,之前的print语句就不能用了。 https://www.cnblogs.com/ksedz/p/3190208.html python的__future__模块 from __future__ import print_function 在python2的环境下,超前使用python3的print函数。 https://zhuanlan.zhihu.com/p/28641474 ''' </pre> <pre> #ping_with_queue.py from __future__ import print_function import subprocess import threading from Queue import Queue from Queue import Empty def call_ping(ip): if subprocess.call(["ping", "-c", "1", ip]): print("{0} is alive".format(ip)) else: print("{0} is unreacheable".format(ip)) def is_reacheable(q): try: while True: ip = q.get_nowait() call_ping(ip) except Empty: pass def main(): q = Queue() with open('ips.txt') as f: for line in f: q.put(line) threads = [] for i in range(10): thr = threading.Thread(target=is_reacheable, args=(q,)) thr.start() threads.append(thr) for thr in threads: thr.join() if __name__ == '__main__': main() </pre> <pre> #!/usr/bin/python #别人改进的版本 auther: Jacky #date: 2016-08-01 #filename: ping_ip.py import os,sys import subprocess,cmd def subping(): f = open("ip_list.txt","r") lines = f.readlines() for line in lines: line=line.strip('\n') ret = subprocess.call("ping -c 2 -w 5 %s" % line,shell=True,stdout=subprocess.PIPE) if ret == 0: str = '%s is alive' % line print str elif ret == 1: str = '%s is not alive' % line print str f.close() subping() #http://blog.51cto.com/jackyxin/1834196 使用python编写批量ping主机脚本 </pre> =see also= [https://blog.csdn.net/drdairen/article/details/60962439 python:threading.Thread类的使用详解] [[category:ops]][[category:python]]
返回至
Ping.py
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
我的导航
关于我
shell
python
ops
linuxchina.net
blog.linuxchina
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息