#!/usr/bin/env python import sys import socket import threading,time # http://www.3fwork.com/b204/001701MYM012691/ # Det tog tre stikkontakter, ip henholdsvis 128.123.121 # Status angiver status for kontakten er slukket 1 0 # Mac forklarer ikke NIC mac # Res er unormal stand sokkel 0 (start, genvinding, etc.) 1 Normal # Sn er serienummeret af muffen class UdpServer: def __init__(self): self.DeviceList={} self.thread_server=threading.Thread(target=self.start) self.thread_server.start() def start(self): address = ('', 48899) self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.s.settimeout(5) self.s.bind(address) try: while True: data, addr = self.s.recvfrom(1024) if not data: print("exist") break data=str(data) d_list=data.replace("b'","").replace("'","").split(',') if str(addr[0]) in d_list[0]: temp_device={} temp_device['IP']=d_list[0] temp_device['MAC']=d_list[1] temp_device['SN']=d_list[2] temp_device['RES']=d_list[3] temp_device['STATUS']=d_list[4] self.DeviceList[addr[0]]=temp_device self.s.close() except socket.timeout: pass except: self.s.close() print("Thread Wrong") def stop(self): self.s.close() del self.thread_server def getDevice(self): return self.DeviceList print("Scanning for Maginon SP-2 sockets on local network:") try: ss=UdpServer() address = ('192.168.14.255', 48899) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True) msg = b"""YZ-RECOSCAN""" s.sendto(msg, address) s.close() time.sleep(1) DeviceList=ss.getDevice() ss.stop() for item in DeviceList: print(DeviceList[item]) except: e = sys.exc_info()[0] print("Error: %s" % str(e)) del ss