python中使用subprocess來使用shwww.cppcns.comell
關於threading的用法
from __future__ import print_function
import subprocess
import threading
def is_reachable(ip):
if subprocess.call(["ping", "-c", "2", ip])==0:#只傳送兩個echo_request包
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(" is reachable".format(ip))
else:
print(" 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.16程式設計客棧8.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是否可達的例項詳解
本文位址: /jiaoben/python/251519.html
通過ICMP協議判斷乙個IP是否可達
在我們開發過程中,會遇到這樣一種情況 在我們請求伺服器時,伺服器會返回兩個或者多個ip給我們,讓我們自主選擇連線,但我們要選擇乙個和我們匹配的ip連線,比如我們在內網,那麼對應的ip就需要我們能ping通,才能連線,下面我們給出簡單例項 include include include iphlpap...
判斷IP是否正確
include includeusing namespace std bool judge string a 判斷函式 j 0 for int i 0 i 0 a i 9 a i return false for int i 0 i15 return false 字元最長為15 for int i ...
判斷多個IP是否合法
bool getipaddress hwnd hwnd else char ptemp null int icount 0 存放ip個數 獲得ip個數 ptemp strchr str,while ptemp null char pp 存放每次找到 符號後面的位址 char pstr max pat...