| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #  | 
| ##@package  | 
| #  | 
| # @todo: Ô¶³Ì¿ØÖÆ¿ª¹Ø·þ  | 
| #  | 
| # @author: Alee  | 
| # @date 2019-2-20 ÏÂÎç05:26:59  | 
| # @version 1.0  | 
| #  | 
| # @note: ÐèҪעÒâ ¡¶·þÎñÆ÷¿ØÖÆÌ¨¡· ÔÚ¿ª»úºóºÍ¹Ø·þºó±£³ÖÔËÐÐ״̬£»¿ª»ú¿ÉÒÔÉèÖÃËæ»úÆô¶¯£¬¹Ø·þºó¿ÉÒÔÌí¼ÓÃüÁîÐпªÆô£¨Ðècd¶¨Î»Ï·¾¶£©  | 
| # 1.¿ØÖÆÌ¨±»Á´½ÓµÄÇé¿ö ÎÞ·¨ÓÐÐ§ÖØÆô  | 
| #---------------------------------------------------------------------  | 
| import urllib  | 
| import urllib2  | 
| import md5  | 
| import os  | 
| import json  | 
| import datetime  | 
|   | 
| g_fileLog = None  | 
|   | 
| key = "slkfjlaskjf'lasjfjj1j4r1;2j;15r1-id-ig-k1r51-0id-sfgk1=-i1-m;az01m,-k-1-i4-14-1fmm1-"  | 
| port = 53009  | 
|   | 
| # Ô¶³ÌCMDÃüÁî  | 
| def control(url, cmdstr):  | 
|     sign = md5.md5("%s1234666%s"%(cmdstr, key)).hexdigest()  | 
|     values = {'control' : cmdstr,   | 
|               'sign' : sign }   | 
|     try:  | 
|         data = urllib.urlencode(values)   | 
|         req = urllib2.Request("http://%s:%s/control/openandclose.php"%(url, port), data)   | 
|         response = urllib2.urlopen(req, timeout=30)   | 
|         the_page = response.read()  | 
|         if not the_page:  | 
|             WriteResult( "%s:ÔËÐÐʧ°Ü===="%url)  | 
|         else:  | 
|             WriteResult( "%s:ÔËÐгɹ¦ %s"%(url, the_page))  | 
|         response.close()  | 
|     except Exception, e:  | 
|         WriteResult("%s:ÔËÐÐʧ°Ü£¬ Èç¹ûÊdz¬Ê±¿ÉÄÜÊÇÔËÐÐÂýÊÇʵ¼ÊÊdzɹ¦£¬ÇåÅäºÏÆäËû¹¤¾ß»òÕßÖ±½ÓÔ¶³Ì²é¿´ %s"%(url, str(e)))  | 
|         #WriteResult("Èç¹ûÊdz¬Ê±¿ÉÄÜÊÇÔËÐÐÂýÊÇʵ¼ÊÊdzɹ¦£¬ÇåÅäºÏÆäËû¹¤¾ß»òÕßÖ±½ÓÔ¶³Ì²é¿´")  | 
|   | 
| # Ö»ÓÃÓÚÊ×´ÎÍêÕû¿ª·þºóµÄ·þÎñÆ÷Æô¶¯²éѯ£¬ÒòΪµØÍ¼ÊÇ×îºó³õʼ»¯Íê±Ï£¬¿ÉÒÔ¸ù¾ÝµØÍ¼Êý¾ÝÅжÏÊÇ·ñÍêÕû¿ªÆô  | 
| # µØÍ¼¹Ø±Õºó²»»á¸Ä±äÊýÁ¿£¬¹ÊµØÍ¼ÓÐÒì³£¹Ø±Õ»áÁíÍâͨ¹ýÓʼþ֪ͨ  | 
| # Èç¹û¡¶·þÎñÆ÷¿ØÖÆÌ¨¡·ÖØÆôÔòÎÞ·¨È·ÈÏ¿ª·þÇé¿ö  | 
| def QueryMapInit(url):  | 
|     try:  | 
|         req = urllib2.Request("http://%s:%s/control/state.php?Type=QueryMapOK"%(url, port))   | 
|         response = urllib2.urlopen(req, timeout=5)   | 
|         the_page = response.read()  | 
|         WriteResult("²éѯ·þÎñÆ÷ %s: %s"%(url, the_page))  | 
|         response.close()  | 
|     except Exception, e:  | 
|         WriteResult("%s:ÔËÐÐʧ°Ü%s"%(url, str(e)))  | 
|   | 
|   | 
| # ÖضÁÅäÖ㬶ÔÓ¦GMkey  | 
| def ReloadConfig(pushurl):  | 
|     # Ä¬È϶˿Ú80£¬ÓÐÐèÒªÖ±½Ó¸ÄµØÖ·  | 
|     try:  | 
|         # GMÍÆË͵ØÖ·  | 
|         gmurl = "http://%s/Server/Tool.php"%(pushurl)  | 
|         gmkey = "Y25GVFoyOVFjbWtyTDJJckt5OU1OQ3RtUFQxPV"  | 
|         if not gmkey or not gmurl:  | 
|             return  | 
|           | 
|         pack_data = {};  | 
|         pack_data["pack_type"] = "GMT_ReloadConfig"  | 
|   | 
|         pack_data["key"] = gmkey;  | 
|         pack_data['coding'] = "utf8";  | 
|       | 
|         #ʹÓÃkey¼ÓÃÜ  | 
|         pack_data_dict = json.dumps(pack_data)  | 
|         sign = md5.md5(pack_data_dict+gmkey).hexdigest()  | 
|         post = {}  | 
|         post['pack'] = pack_data_dict;  | 
|         post['sign'] = sign;  | 
|         result = urllib2.urlopen(gmurl, urllib.urlencode(post), 10)  | 
|   | 
|         content = result.read()  | 
|         result.close()  | 
|         resultDict = json.loads( content)  | 
|         if resultDict["ResultType"] == 0:  | 
|             WriteResult( pushurl + " ÖضÁ³É¹¦£¡£¡£¡")  | 
|             return True  | 
|         WriteResult( pushurl+ " ÖضÁʧ°Ü")  | 
|         return False  | 
|     except Exception, e:  | 
|         WriteResult( pushurl+ " ÖضÁʧ°Ü" + str(e))  | 
|     return False  | 
|       | 
|   | 
| def WriteResult(msg):  | 
|     global g_fileLog  | 
|     if not g_fileLog:  | 
|         g_fileLog = open(r".\controlLog.txt", "a")  | 
|     g_fileLog.write(str(datetime.datetime.today()) + '\t' + msg + "\n")  | 
|     print msg  | 
|     return  | 
|   | 
| #control("vm-mobilecom", "open")     | 
| #control("vm-mobilecom", "close")  | 
|   | 
| if __name__=='__main__':  | 
|     # ·þÎñÆ÷ÁÐ±í  | 
|     f = open(r'.\qufu.txt','r')  | 
|       | 
|     result = raw_input("ÇëÊäÈë×Öĸ k.¿ª·þ g.¹Ø·þ c.²é¿´µØÍ¼ÔËÐÐÇé¿ö£¨Ê׿ª·þ£© r.ÖØ¶ÁÅäÖÃ")  | 
|     result = result.strip()  | 
|     WriteResult("==¿ªÊ¼Ö´ÐÐÃüÁî:%s"%result)  | 
|     if result == 'k':   | 
|         for line in f.readlines():  | 
|             control(line.strip(), "open")     | 
|     elif result == 'g':   | 
|         for line in f.readlines():  | 
|             control(line.strip(), "close")  | 
|     elif result == 'c':   | 
|         for line in f.readlines():  | 
|             QueryMapInit(line.strip())  | 
|     elif result == 'r':  | 
|         for line in f.readlines():  | 
|             ReloadConfig(line.strip())  | 
|     else:  | 
|         WriteResult("==Ö´ÐдíÎóµÄÃüÁî:%s"%result)  | 
|     f.close()  | 
|       | 
|     if g_fileLog:  | 
|         g_fileLog.close()  | 
|   | 
|     os.system('pause')  |