mirror of
https://github.com/aaPanel/aaPanel.git
synced 2026-08-31 04:09:37 +02:00
Update to 7.7.0
Since version 7.7.0, we recommend yours update python to 3.12. [+] Using nginx technology to load static files improves access speed [+] Refactor homepage, website, FTP, and database using vue3 [+] Table loading changed to skeleton screen [+] Add Website statistics-v2 professional plug-in [+] Add Home page - top 5 resource occupancy [+] Add protection for Files management (requires Tamper-proof for Enterprise 3.7) [+] Website, FTP, Databases page add program status [+] Add FTP log analysis (only supports Centos) [+] Add password-free login to phpMyAdmin [+] Add Proxy Project in Website (Supported when web service uses Nginx) [+] Add WP Toolkit (Pro version only) [+] Redesigned Docker module [+] Add WP Toolkit Protection [+] Add WP Toolkit Backup and Restore [+] Add WP Toolkit Migrated [+] Add WP Toolkit Clone site (supports new domain and subdomain) [+] Add WP Toolkit Create site from backup of other panel [+] Add WP Toolkit support for Cron automatic backup (only save Local disk) [+] Add WP Toolkit operation log [+] Add Integrity check for WP Toolkit [+] Add WP Toolkit plug-in management and themes management [*] Optimize phpMyAdmin formula access method [*] Optimize Home page PHP display problem [*] Optimize jump to the login interface after the login expires [*] Optimize automatic renewal of SSL at some times [*] Optimize Let's Encrypt to increase application success rate [-] Fix Logs Audit cannot be opened [-] Fix apache URL rewrite issue [-] Fix phpmyadmin installation problem [-] Fix the problem that some servers cannot install software [-] Fix upload file error [-] Fix left menu hiding problem [-] Fix aaPanel Mobile QR code display problem [-] Fix problem that third-party plug-ins are not displayed in the App Store [-] Fix issue where the menu bar is blank when opening new tabs [-] Fixed panel not being accessible in some cases [-] Fix the issue where Curl warning caused the inability to apply for SSL [-] Fix Quota issues for Website, FTP, Databases [-] Fix file interface display problem on mobile terminal
This commit is contained in:
+118
-118
@@ -1,118 +1,118 @@
|
||||
#coding: utf-8
|
||||
#-------------------------------------------------------------------
|
||||
# 宝塔Linux面板
|
||||
#-------------------------------------------------------------------
|
||||
# Copyright (c) 2015-2099 宝塔软件(http://bt.cn) All rights reserved.
|
||||
#-------------------------------------------------------------------
|
||||
# Author: cjxin <cjxin@bt.cn>
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
# 商用IP库
|
||||
#------------------------------
|
||||
import os,re,json,time
|
||||
from safeModel.base import safeBase
|
||||
import public
|
||||
|
||||
|
||||
class main(safeBase):
|
||||
|
||||
_sfile = '{}/data/ip_area.json'.format(public.get_panel_path())
|
||||
def __init__(self):
|
||||
try:
|
||||
self.user_info = public.get_user_info()
|
||||
except:
|
||||
self.user_info = None
|
||||
|
||||
def get_ip_area(self,get):
|
||||
"""
|
||||
@获取IP地址所在地
|
||||
@param get: dict/array
|
||||
"""
|
||||
ips = get['ips']
|
||||
arrs,result = [],{}
|
||||
for ip in ips:
|
||||
info = {}
|
||||
res = self.__check_ip_area(ip)
|
||||
if res:
|
||||
if type(res) == str:
|
||||
info['info'] = res
|
||||
else:
|
||||
info = res
|
||||
result[ip] = info
|
||||
else:
|
||||
arrs.append(ip)
|
||||
|
||||
if len(arrs) > 0:
|
||||
data = self.__get_cloud_ip_info(arrs)
|
||||
for ip in data:
|
||||
result[ip] = data[ip]
|
||||
return result
|
||||
|
||||
def __check_ip_area(self,ip):
|
||||
"""
|
||||
@检查IP地址所在地
|
||||
@param ip:
|
||||
"""
|
||||
|
||||
if not public.is_ipv4(ip):
|
||||
return 'Unknown'
|
||||
if public.is_local_ip(ip):
|
||||
return 'Intranet'
|
||||
|
||||
data = self.get_ip_area_cache()
|
||||
if ip in data:
|
||||
return data[ip]
|
||||
return False
|
||||
|
||||
|
||||
def __get_cloud_ip_info(self,ips):
|
||||
"""
|
||||
@获取IP地址所在地
|
||||
@param ips:
|
||||
"""
|
||||
result = {}
|
||||
try:
|
||||
|
||||
data = {}
|
||||
data['ip'] = ','.join(ips)
|
||||
data['uid'] = self.user_info['uid']
|
||||
data["serverid"]=self.user_info["serverid"]
|
||||
res = public.httpPost('https://www.bt.cn/api/panel/get_ip_info',data)
|
||||
res = json.loads(res)
|
||||
|
||||
data = self.get_ip_area_cache()
|
||||
for key in res:
|
||||
if not public.is_ipv4(key): continue
|
||||
|
||||
info = res[key]
|
||||
if not res[key]['city'].strip() and not res[key]['continent'].strip():
|
||||
info = {'info':'Intranet'}
|
||||
else:
|
||||
info['info'] = '{} {} {} {}'.format(info['carrier'],info['country'],info['province'],info['city']).strip()
|
||||
|
||||
data[key] = info
|
||||
result[key] = info
|
||||
self.set_ip_area_cache(data)
|
||||
except: pass
|
||||
return result
|
||||
|
||||
|
||||
def get_ip_area_cache(self):
|
||||
"""
|
||||
@获取IP地址所在地
|
||||
@param get:
|
||||
"""
|
||||
data = {}
|
||||
try:
|
||||
data = json.loads(public.readFile(self._sfile))
|
||||
except:
|
||||
public.writeFile(self._sfile,json.dumps({}))
|
||||
return data
|
||||
|
||||
def set_ip_area_cache(self,data):
|
||||
"""
|
||||
@设置IP地址所在地
|
||||
@param data:
|
||||
"""
|
||||
public.writeFile(self._sfile,json.dumps(data))
|
||||
return True
|
||||
QRASP55VO/1DQ98p1csw9A==
|
||||
I8MGJUwtjfcKc5w4E0SmjHtl5KRuv0WI7NyW3SlEwCrZmcmaREiC99KS4CzwW5Su330khbLdQaeuAWr4x/NqQCTep2zIARzdXiKXPh1Fe+M=
|
||||
dBZyCsfrbwqvA0sbdGrIGg==
|
||||
I8MGJUwtjfcKc5w4E0SmjHtl5KRuv0WI7NyW3SlEwCrZmcmaREiC99KS4CzwW5Su330khbLdQaeuAWr4x/NqQCTep2zIARzdXiKXPh1Fe+M=
|
||||
n+0ptngHIPIjFuMNQ53bfj+Na/fdhk6k1yTpAwW7j353Dw920mEqQQZjykAHeRmp0ZD/P3ftGifsmPOMf2b7XdEqyZH0yl9kjaUugj3dYPI=
|
||||
I8MGJUwtjfcKc5w4E0SmjHtl5KRuv0WI7NyW3SlEwCrZmcmaREiC99KS4CzwW5Su330khbLdQaeuAWr4x/NqQCTep2zIARzdXiKXPh1Fe+M=
|
||||
jh3cxzkA2htccqfZRKAUdI8r17q57nOGP4OxbJlL1NAnrF4weHnS0MpT6C6jbrX5
|
||||
I8MGJUwtjfcKc5w4E0SmjHtl5KRuv0WI7NyW3SlEwCrZmcmaREiC99KS4CzwW5Su330khbLdQaeuAWr4x/NqQCTep2zIARzdXiKXPh1Fe+M=
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
rUv3hasppUA6pOugYcQZyA==
|
||||
I8MGJUwtjfcKc5w4E0SmjHwLsErBQ84ek459TV1n0Iir/P4mdpfwDI34s6+8CBN0
|
||||
iEprTHe70MI/8Rhzd8EK+QnVQn6aZyZ8dBODiF5pySg=
|
||||
1w/Bux0eSLh4laruMV+kEu4fb+1yCwxQ0hOHwrLNXXRaWZyv1p2zipoavmFan6NZ
|
||||
XIfdJ79nObMM+vyAmKbTmw==
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
hbDorme8BqzUEmeXCAWmYa52umm3PBCcfSvATzTG02w=
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
giysigZ4bhExZB4emZkX3a9fe6PGGMNE9ZZnk7xPqW8QW2Ij1yNFf5XEj5pPPlMwdhA6dIcO2ZX23qJszvnq1fcl6NckihyZ+Uf83rbYjeQ=
|
||||
9GxZpCRwMRDPejWR2Vvf+LKn0tNtFKp8Eh2tnr4Da9U=
|
||||
b4OJVZe8QyIpjuTpKXDL9A==
|
||||
32pdC9DD05OE2l0oXazDFI+hlwIzzkFTo7tZH3axSGoKNgh7EevAzaB+FO2ZLVS/maKOtFAjIeKErPBj7dsfmg==
|
||||
mfT8DrNbUmxQ2BnZ1bZFTLh9MEuZKOpmAfF70OnZ9TU=
|
||||
32pdC9DD05OE2l0oXazDFOQO8mg+tgs322u5NSxm1hnE+dYVd/hkfCsat3ixeRAk
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
Fq/4dKD9ssEKrNEHrSuygxu04P7BPF8PboiRMtr4FMM=
|
||||
Z8UsPk1Q7HtwjRd4g01ryw==
|
||||
KNy3a/ETENhyr8ymSkKe9l1RX/SenKsGMtRp3/Nl0CxdpK2w2cyo43SfPqzKitUD
|
||||
ho/Q+jrWDtBeg9J9ZTnKi7MMSdcDWkuDSRbkOa0slC0=
|
||||
Z8UsPk1Q7HtwjRd4g01ryw==
|
||||
1aJ5h9ef6qScYRSEXHxMz/JV+hrqnP7g6CgzmGbTA34=
|
||||
CH5utP+NORdjI2nqATw4gJ30bQaw4oV4TkWtZlCiO9A=
|
||||
lbIj6ug3LX3xS019kmbRSTcfm4XASPCYnVO8MD2z14s=
|
||||
iZaIsa48RXfE+uf/yF/rQD9SK8CJ49+yPAMIKmMZPD4=
|
||||
lOh2GtzHjjMM8E9J40AuOc+/vc1yhUL+xJx/Mivlb25pg5HBJ1HJ91Rfq30bJq9S
|
||||
UbJuac0dxLiN+5ocS3w2vRp92UK1M7Voei4ApHZyTgY=
|
||||
VmVrGQo2zRokW/ZuO9bN69BDpCzHoJtTjTgNlAOe5sUQUaSnZ1Z1hl5M9Ym+7tCG
|
||||
VmVrGQo2zRokW/ZuO9bN61V3/TpT/zrd2QvdUtMgGKRq8f0CD0RNnZ4rTqSInsSj
|
||||
VmVrGQo2zRokW/ZuO9bN65hAGaICagbU0z0X3nArVjY=
|
||||
VmVrGQo2zRokW/ZuO9bN657tYrblt+z3q06zgiQZcYA=
|
||||
VmVrGQo2zRokW/ZuO9bN66aFKP1IdEjWKaMooH0pyYReSxgrF6gfc+R+CrZAggrY
|
||||
sobCGpmMf4/g7+HpPqBjC6hatZ6rUY3AAzqC73FJ58Q=
|
||||
VmVrGQo2zRokW/ZuO9bN69KBqHrgU1XKz6C1sxuKNo2/9c/EcmFt/gfo+iaOu2+K
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
n+FHKmWLbioNpC38yMj4WmiXmXqyLuzKUmIAM1Ft5eM=
|
||||
NhnIR3Ilo4H2su9/cTNo/MME7jTfPzQcknP67wyItNzcCacoNjdvCuiW0x8udsSO/edftRARPJ4xwm1wQrVT2A==
|
||||
wlLHv6kT3Q/RmtMBN4nDATwL/9Oa0sOvSxwVwQfq99U=
|
||||
VmVrGQo2zRokW/ZuO9bN68Jg91voF9Ce3nf2o3e+jkofqu9SSuRXcnpG7smrmLLo
|
||||
ruTTNFTdswRs4Mc+srnRk818d9d/TGGXzgPjSrVtMi8=
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
6d8NLnHX3WuS3g79bJvyhMRKs67DB9ZOIiBDrB02YSQctSNS1aqQlPvqVprQ2WDG
|
||||
Z8UsPk1Q7HtwjRd4g01ryw==
|
||||
fXZfnC6cxxgiN+onu+xJ1wUhirDdf4kByrL5vhQHFnCYKlzy/eVgdjzy55WiEFTz
|
||||
LikBEoRjt8wwWzUZNw+jJgsad0LKWFNZK+YO+SfR6UU=
|
||||
Z8UsPk1Q7HtwjRd4g01ryw==
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
W3A5Dt+8AxWSKsTYeXZoL+tHA8UsZgQuAUkDUOPJ9p9irMcLKjcsuwS2q6lHXAKR
|
||||
L0eUthVnpkGsmKFAX6d+uOlJx8vHVMiotg8sk086vHQ=
|
||||
TQRmC0vOvJ1P+lfyS3Os4X1xcTKiQ06lXIJEwRwWbq4ieECEmB4BmDhbitv1CsLg
|
||||
L0eUthVnpkGsmKFAX6d+uLqKlmsh+FpVhvWy0B6mjhM=
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
YabJCT93a3/IohXaIkr3oS6/BpCE446GJgDFFvo/yjjYAG9E6229ssUIWmf519v1
|
||||
hBWY30cr8RshUe3F5HK1cRZ9KmhsMz0lNR6pLxg9eoM=
|
||||
L0eUthVnpkGsmKFAX6d+uFd45MXPp4WlUdlXMx7fhE8=
|
||||
VMfVrQporTLzVAs+KagENs0jVofd/mPyGKFNcwoEK/8=
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
avrdBvQ7h/91pEC4PcvqMSR2TJ0t+8EMPSsnARb+XVHHkBrQO1HsCg6QcbTZvZ2W
|
||||
Z8UsPk1Q7HtwjRd4g01ryw==
|
||||
KNy3a/ETENhyr8ymSkKe9l1RX/SenKsGMtRp3/Nl0CxdpK2w2cyo43SfPqzKitUD
|
||||
LikBEoRjt8wwWzUZNw+jJpxJaQXGUN8g/Hr0khQ9A1Q=
|
||||
Z8UsPk1Q7HtwjRd4g01ryw==
|
||||
/0ULpLqgTvInFD0r5hHANoosZ+xywkOR5dozStfmlYk=
|
||||
b4OJVZe8QyIpjuTpKXDL9A==
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
NhnIR3Ilo4H2su9/cTNo/F9IByyW2CHxX2+3PSbgZmE=
|
||||
NhnIR3Ilo4H2su9/cTNo/JEWIdEQUX/MlMcOaFZ8tGgjCfBcJNHhmedart7PDRhF
|
||||
NhnIR3Ilo4H2su9/cTNo/E4e/PRk3DEtgyjsUDeOpSOwGpZehbHYaLN6kP4SrhN+PFbXCI6E8Z+8865ULB7IOw==
|
||||
NhnIR3Ilo4H2su9/cTNo/C/mkLay+Rx5WJjwGcYV7pSktyrOzy78W2NcadJ49lO1rNrUNnnzcDMri5NWEH6lGQ==
|
||||
lOh2GtzHjjMM8E9J40AuOVVeyoh6rSy98QMdDBotkjU+CpzMJCQMfJrCkE4uEcQAgmW0jhOnZHI5mtglpnoAuAijuP+2lAOsmb6+b+801pIjLK0hXXo2u4rmG7jkFs3R
|
||||
lOh2GtzHjjMM8E9J40AuOeMCiZGQsphriaBgvIdFiyOx9f7gw874ih7YoSVMDwrD
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
NhnIR3Ilo4H2su9/cTNo/A5SzFv4xHkReni2nLCW9wf/+pP3k795kKoMZAQXwXD6
|
||||
wlLHv6kT3Q/RmtMBN4nDASCRBoPIX3WHiVt75UTjznI=
|
||||
VmVrGQo2zRokW/ZuO9bN63WVsNPEwwprYYkAUqx5H2WQM74qCCEzrB3qJy/Mpn1CTpqeZGmRvqbYKmI/uSdTZw==
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
VmVrGQo2zRokW/ZuO9bN61LJQniFugoi6x2ujjnJM7tldXKimSA8e3cVKdvY80W2
|
||||
VmVrGQo2zRokW/ZuO9bN64CPlXy2HmOeksJNoNOmCTRN2iWrExIMUdvTGpj/NNWq+ALT/bwKyDsjcfkGB9eQcrQ3H8UC+ywFIkXx32JcLCKuolLfVZKLqPTsQHTpYF9P
|
||||
VmVrGQo2zRokW/ZuO9bN6yDw6frMtVHHQaPzsZSKK0aES6D4Kud9zFd68X/jO6wJ
|
||||
VmVrGQo2zRokW/ZuO9bN65hAGaICagbU0z0X3nArVjY=
|
||||
VmVrGQo2zRokW/ZuO9bN61V3/TpT/zrd2QvdUtMgGKQFi9VDtwL4Vc83iegeMAft36zpJ+t/eeWtmA4Eamfb77jKlCL/2MWCO4n+tmFfKcs5bo8I5tFr5Qu31v4FEN0K0c0Au7xRuJmPMknxTzJ1AQ4L8Z8QbLuQ3EJTDAgG6zw=
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
VmVrGQo2zRokW/ZuO9bN6wKjnvaTwlMeHWSuJ/EAxZ8Z1KtkmFIaU/d9KNNMifcN
|
||||
VmVrGQo2zRokW/ZuO9bN62ExR0OHxzNY3oC4Mfi694VYJyilbRPMd6JDlCBDdbCe
|
||||
32pdC9DD05OE2l0oXazDFLdmyVEUr33LQ7qI5CZQN57igfVF4gan9s5C0Jnc3Ki1
|
||||
6ZPJI/HSoc4xA2zncU65FpfH+eGtPlOYNU1YCnnAis8=
|
||||
ruTTNFTdswRs4Mc+srnRk818d9d/TGGXzgPjSrVtMi8=
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
Fq/4dKD9ssEKrNEHrSuyg9mm2ubmmEvtKER/ZGhfGKuM0YKPX8D/je6PexvVvgfs
|
||||
Z8UsPk1Q7HtwjRd4g01ryw==
|
||||
KNy3a/ETENhyr8ymSkKe9l1RX/SenKsGMtRp3/Nl0CxdpK2w2cyo43SfPqzKitUD
|
||||
ho/Q+jrWDtBeg9J9ZTnKi+3gjgJLBNWc0CWgOki/1ZE=
|
||||
Z8UsPk1Q7HtwjRd4g01ryw==
|
||||
JbnXIK/axHVmA2plDNFCpPYlXWvPB/7lIz9ynMkifTY=
|
||||
b4OJVZe8QyIpjuTpKXDL9A==
|
||||
NhnIR3Ilo4H2su9/cTNo/Ps3vYSOiOY6esn1xeoWmAlmLwmaOoQ9T7lnCb6TRVZ67prVtxc96eRcwG0EieQAHA==
|
||||
mfT8DrNbUmxQ2BnZ1bZFTLh9MEuZKOpmAfF70OnZ9TU=
|
||||
xWoGNWjKGPfI4gq8aHoTfBq1oaYa956TFzYuHTbqc+nhmNgO2Yqkfbla+bgPzSp/ulULnjCxA+skRNBtWTg0BA==
|
||||
+plE/1bhdo64kO07cLlUXzzWH25pNAS0eDxp8hnHILg=
|
||||
1u+XjG/2+GSQRv6EzCaWRQ==
|
||||
0jp9NuG0oWLkMfJ/MsYOmfu7WkSnZjHksXr6BBYLZSUOzHDXl9XjsxiUKNVbrHEG
|
||||
Z8UsPk1Q7HtwjRd4g01ryw==
|
||||
+kAMkUztiJJUlfW5H0qbp+x6TgEEQKPe4CNld5ATADH0jjvxLnFDBqMEQxxyT+xg
|
||||
vPgTNKnHCM+ykPDJGfC5NIdfn4GuPGcMgxOHmcFE4sA=
|
||||
Z8UsPk1Q7HtwjRd4g01ryw==
|
||||
IhuisKim47k91RVt8z8qtK4Hi8QoBKGCIdLYuWbuvVULY/yxOc14YsJd+ymvu1M2ua6mSguBgb6gPVMjpVflaQ==
|
||||
guSZID0bFQuDFoWO2uxAJhef0KHvUEISzfxiK9WGidA=
|
||||
|
||||
Reference in New Issue
Block a user