data = """[[inbounds]] port = {port} protocol = "socks" tag = "tag_{port}" [inbounds.settings] auth = "password" udp = true ip = "{ip}" [[inbounds.settings.accounts]] user = "{user}" pass = "{password}" [[outbounds]] sendThrough = "{ip}" protocol = "freedom" tag = "tag_{port}"
[[routing.rules]] type = "field" inboundTag = "tag_{port}" outboundTag = "tag_{port}"
"""
defget_all_local_ips(): """
:return: """ ips = [] try: # Unix systems ip_config = subprocess.check_output(['ifconfig'], encoding='utf-8') for line in ip_config.split('\n'): if'inet 'in line or'inet6 'in line: parts = line.split() ip = parts[1] if ip != '127.0.0.1'or ip != '::1': ips.append(ip)
for ip, port in infos: d = dict() d['ip'] = ip d['user'] = 'userb' d['password'] = 'passwordb' d['port'] = port text = data.format(**d) content += text + '\n'
withopen('xray_config.toml', 'w') as f: f.write(content)