parseMultiaddrString function
- String multiaddrString
Helper function to parse a multiaddr string into a FullAddress.
Implementation
FullAddress? parseMultiaddrString(String multiaddrString) {
try {
// Basic support for /ip4/<ip>/tcp/<port> or /ip6/<ip>/tcp/<port>
final parts = multiaddrString.split('/');
if (parts.length < 5) return null;
final protocol = parts[1];
final host = parts[2];
final transport = parts[3];
final portStr = parts[4];
if (protocol != 'ip4' && protocol != 'ip6') return null;
if (transport != 'tcp' && transport != 'udp') return null;
// Basic IP validation
if (protocol == 'ip4') {
final ipParts = host.split('.');
if (ipParts.length != 4) return null;
for (final part in ipParts) {
final val = int.tryParse(part);
if (val == null || val < 0 || val > 255) return null;
}
} else if (protocol == 'ip6') {
if (!host.contains(':') && host != '::1') return null;
// Simple validation for IPv6
}
final port = int.tryParse(portStr);
if (port == null || port <= 0 || port > 65535) return null;
return FullAddress(address: host, port: port);
} catch (e) {
return null;
}
}