小豆浆 python批量ping机器(threading,subprocess) www.xdoujiang.com

  • A+
所属分类:python实战
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. #--------------------------------------------------
  4. #Author:gongzheng
  5. #Email:85646830@163.com
  6. #FileName:1.py
  7. #Function: 
  8. #Version:1.0 
  9. #Created:2017-12-22
  10. #--------------------------------------------------
  11. #该脚本只适用检查的IP小于100
  12. import subprocess
  13. import threading
  14. def is_reacheable(ip):
  15.     subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
  16.     Retnum = subprocess.call('ping -c 1 %s' % ip,shell=True,stdout=open('/dev/null','w'),stderr=subprocess.STDOUT)
  17.     if Retnum == 0:
  18.         #打印 并格式化下
  19.         print("{0} is alive".format(ip))
  20.     else:
  21.         #这里down的话 我就不让他输出了
  22.         pass
  23. def main():
  24.     #打开文件ips.txt
  25.     with open('ips.txt') as f:
  26.         #lines IP列表
  27.         lines = f.readlines()
  28.         threads = []
  29.         #for循环
  30.         for line in lines:
  31.             #class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
  32.         #target=is_reacheable是上面那个函数
  33.             thr = threading.Thread(target=is_reacheable, args=(line,))
  34.             #Start the thread’s activity.开始线程
  35.             thr.start()
  36.             #线程一直累加 缺点是线程多了有问题的
  37.             threads.append(thr)
  38.         for thr in threads:
  39.             #join(timeout=None)Wait until the thread terminates
  40.             thr.join(timeout=1)
  41. if __name__ == '__main__':
  42.     main()
  43. 效果:
  44. root@192.168.4.73:scripts# python 1.py 
  45. 192.168.4.1
  46.  is alive
  47. 配置文件
  48. root@192.168.4.73:scripts# cat ips.txt 
  49. 192.168.4.1
  50. 192.168.4.2
  51. 192.168.4.3
  52. 192.168.4.4
  53. 192.168.4.5
  54. 192.168.4.6
  55. 192.168.4.7
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: