async detectExternalIp() {
		const services = [
			'https://api.ipify.org',
			'https://ifconfig.me/ip',
			'https://icanhazip.com',
			'https://ipecho.net/plain'
		];

		// Shuffle the services to distribute load
		const shuffledServices = shuffle(services);
		
		// Try each service until one returns a valid IP
		for (const service of shuffledServices) {
			try {
				logT('p2p', 'Attempting to detect external IP using', service);
				const ip = await new Promise((resolve, reject) => {
					https.get(service, (res) => {
						let data = '';
						res.on('data', (chunk) => data += chunk);
						res.on('end', () => {
							// Validate the IP address format
							const ip = data.trim();
							const ipRegex = /^(\d{1,3}\.){3}\d{1,3}$/;
							if (ipRegex.test(ip)) {
								resolve(ip);
							} else {
								reject(new Error('Invalid IP format: ' + ip));
							}
						});
					}).on('error', reject);
				});
				
				logT('p2p', 'Detected external IP:', ip);
				return ip;
			} catch (err) {
				logTW('p2p', 'Failed to detect external IP using', service, ':', err.message);
			}
		}
		
		logTW('p2p', 'Could not detect external IP from any service');
		return null;
	}
Detect external IP address using external services
@returns {Promise<string|null>} The external IP address or null if not found