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

2022-10-06 04:42:07 字數 1630 閱讀 5101

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...