Difference between revisions of "ThreadedPing.py"

From dftwiki3
Jump to: navigation, search
(New page: <code><pre> # # http://www.wellho.net/solutions/python-python-threads-a-first-example.html import os import re import time import sys from threading import Thread class testit( Thread ): ...)
 
Line 1: Line 1:
<code><pre>
+
--[[User:Thiebaut|D. Thiebaut]] 16:09, 24 January 2010 (UTC)
 +
 
 +
<source lang="python">
 
#
 
#
 
# http://www.wellho.net/solutions/python-python-threads-a-first-example.html
 
# http://www.wellho.net/solutions/python-python-threads-a-first-example.html
Line 40: Line 42:
 
   pingle.join()
 
   pingle.join()
 
   print "Status from ",pingle.ip,"is",report[pingle.status]
 
   print "Status from ",pingle.ip,"is",report[pingle.status]
</pre></code>
+
 
 +
</source>

Revision as of 12:09, 24 January 2010

--D. Thiebaut 16:09, 24 January 2010 (UTC)

#
# http://www.wellho.net/solutions/python-python-threads-a-first-example.html
import os
import re
import time
import sys
from threading import Thread

class testit( Thread ):
   def __init__ ( self, ip ):
      Thread.__init__(self)
      self.ip = ip
      self.status = -1

   def run( self ):
      pingaling = os.popen( "ping -q -c2 " + self.ip, "r" )
      while True:
        line = pingaling.readline()
        if not line: break
        igot = re.findall(testit.lifeline, line)
        if igot:
           self.status = int( igot[0] )

#--- static members for the class ---
testit.lifeline = re.compile(r"(\d) received")
report = ( "No response", "Partial Response", "Alive")

print time.ctime()

pinglist = []

for host in range(1,50):
   ip = "131.229.72."+str(host)
   current = testit(ip)
   pinglist.append(current)
   current.start()

for pingle in pinglist:
   pingle.join()
   print "Status from ",pingle.ip,"is",report[pingle.status]