Browse Source

auto get ip, ignore 'enable'

dev
BreakWa11 9 years ago
parent
commit
6db1445d2a
  1. 30
      mujson_mgr.py

30
mujson_mgr.py

@ -28,26 +28,45 @@ class MuJsonLoader(object):
class MuMgr(object): class MuMgr(object):
def __init__(self): def __init__(self):
self.config_path = get_config().MUDB_FILE self.config_path = get_config().MUDB_FILE
try:
self.server_addr = get_config().SERVER_PUB_ADDR self.server_addr = get_config().SERVER_PUB_ADDR
except:
self.server_addr = '127.0.0.1'
self.data = MuJsonLoader() self.data = MuJsonLoader()
if self.server_addr == '127.0.0.1': if self.server_addr == '127.0.0.1':
try: self.server_addr = self.getipaddr()
def getipaddr(self, ifname = 'eth0'):
import socket import socket
self.server_addr = socket.gethostbyname(socket.gethostname()) import struct
import fcntl
ret = '127.0.0.1'
try:
ret = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
except: except:
pass pass
if ret == '127.0.0.1':
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
ret = socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15]))[20:24])
except:
pass
return ret
def ssrlink(self, user): def ssrlink(self, user, encode):
protocol = user.get('protocol', '') protocol = user.get('protocol', '')
obfs = user.get('obfs', '') obfs = user.get('obfs', '')
protocol = protocol.replace("_compatible", "") protocol = protocol.replace("_compatible", "")
obfs = obfs.replace("_compatible", "") obfs = obfs.replace("_compatible", "")
link = "%s:%s:%s:%s:%s:%s" % (self.server_addr, user['port'], protocol, user['method'], obfs, common.to_str(base64.urlsafe_b64encode(common.to_bytes(user['passwd'])))) link = "%s:%s:%s:%s:%s:%s" % (self.server_addr, user['port'], protocol, user['method'], obfs, common.to_str(base64.urlsafe_b64encode(common.to_bytes(user['passwd']))))
return "ssr://" + common.to_str(base64.urlsafe_b64encode(common.to_bytes(link))) return "ssr://" + ( encode and common.to_str(base64.urlsafe_b64encode(common.to_bytes(link))) or link)
def userinfo(self, user): def userinfo(self, user):
ret = "" ret = ""
for key in user.keys(): for key in user.keys():
if key in ['enable']:
continue
ret += '\n' ret += '\n'
if key in ['transfer_enable', 'u', 'd'] : if key in ['transfer_enable', 'u', 'd'] :
val = user[key] val = user[key]
@ -64,7 +83,8 @@ class MuMgr(object):
ret += " %s : %s G Bytes" % (key, val) ret += " %s : %s G Bytes" % (key, val)
else: else:
ret += " %s : %s" % (key, user[key]) ret += " %s : %s" % (key, user[key])
ret += "\n " + self.ssrlink(user) ret += "\n " + self.ssrlink(user, False)
ret += "\n " + self.ssrlink(user, True)
return ret return ret
def rand_pass(self): def rand_pass(self):

Loading…
Cancel
Save