// // SystemConfig.swift // sdlan // // Created by 安礼成 on 2024/6/3. // import Foundation struct SystemConfig { // 版本设置 static let version = 1 static let version_name = "1.1" // 安装渠道 static let installedChannel = "MacAppStore" // super 节点 //static let superHost = "118.178.229.213" static let superHost = "punchnet.s5s8.com" static let superPort = 18083 // stun探测服务 static let stunServers = "118.178.229.213:1265,1266;118.178.229.213:1265,1266" //static let stunServers = "127.0.0.1:1265,1266;127.0.0.1:1265,1266" static func getOptions(networkId: UInt32, networkDomain: String, ip: String, maskLen: UInt8, accessToken: String, hostname: String, noticePort: Int) -> [String: NSObject]? { guard let superIp = DNSResolver.resolveAddrInfos(superHost).first else { return nil } let clientId = getClientId() let mac = getMacAddress() let options = [ "version:": version as NSObject, "installed_channel": installedChannel as NSObject, "client_id": clientId as NSObject, "access_token": accessToken as NSObject, "super_ip": superIp as NSObject, "super_port": superPort as NSObject, "stun_servers": stunServers as NSObject, "remote_dns_server": superIp as NSObject, "hostname": hostname as NSObject, "notice_port": noticePort as NSObject, "network_address": [ "network_id": networkId as NSObject, "ip": ip as NSObject, "mask_len": maskLen as NSObject, "mac": mac as NSObject, "network_domain": networkDomain as NSObject ] as NSObject ] return options } public static func getClientId() -> String { let userDefaults = UserDefaults.standard if let uuid = userDefaults.value(forKey: "gClientId") as? String { return uuid } else { let uuid = UUID().uuidString.replacingOccurrences(of: "-", with: "").lowercased() userDefaults.setValue(uuid, forKey: "gClientId") return uuid } } // 获取mac地址 public static func getMacAddress() -> Data { let key = "gMacAddress2" let userDefaults = UserDefaults.standard if let mac = userDefaults.value(forKey: key) as? Data { return mac } else { let mac = generateMacAddress() userDefaults.setValue(mac, forKey: key) return mac } } // 随机生成mac地址 private static func generateMacAddress() -> Data { var macAddress = [UInt8](repeating: 0, count: 6) for i in 0..<6 { macAddress[i] = UInt8.random(in: 0...255) } return Data(macAddress) } }