中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

對python判斷ip是否可達的實例詳解

發布時間:2020-09-18 21:15:56 來源:腳本之家 閱讀:254 作者:你這只豬兒蟲 欄目:開發技術

python中使用subprocess來使用shell

關于threading的用法

from __future__ import print_function
import subprocess
import threading

def is_reachable(ip):
  if subprocess.call(["ping", "-c", "2", ip])==0:#只發送兩個ECHO_REQUEST包
    print("{0} is alive.".format(ip))
  else:
    print("{0} is unalive".format(ip))
if __name__ == "__main__":
  ips = ["www.baidu.com","192.168.0.1"]
  threads = []
  for ip in ips:
    thr = threading.Thread(target=is_reachable, args=(ip,))#參數必須為tuple形式
    thr.start()#啟動
    threads.append(thr)
  for thr in threads:
    thr.join()

改良 :使用Queue來優化(FIFO)

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", "2", ip])==0:
    print("{0} is reachable".format(ip))
  else:
    print("{0} is unreachable".format(ip))


def is_reachable(q):
  try:
    while True:
      ip = q.get_nowait()#當隊列為空,不等待
      call_ping(ip)
  except Empty:
    pass


def main():
  q = Queue()
  args = ["www.baidu.com", "www.sohu.com", "192.168.0.1"]
  for arg in args:
    q.put(arg)

  threads = []
  for i in range(10):
    thr = threading.Thread(target=is_reachable, args=(q,))
    thr.start()
    threads.append(thr)
  for thr in threads:
    thr.join()

if __name__ == "__main__":
  main()

以上這篇對python判斷ip是否可達的實例詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丰县| 磐安县| 安国市| 陆良县| 腾冲县| 白玉县| 吴堡县| 梧州市| 潢川县| 顺义区| 佛坪县| 樟树市| 和平区| 德保县| 平谷区| 丹棱县| 东光县| 修水县| 德格县| 潞西市| 读书| 九台市| 蓝山县| 阿坝县| 广南县| 达尔| 天津市| 毕节市| 南木林县| 盐山县| 岐山县| 邻水| 大田县| 永安市| 台湾省| 安乡县| 平原县| 星座| 汨罗市| 衡水市| 平顶山市|