List<int> parseIPv4Address(String host)

Parse the host as an IP version 4 (IPv4) address, returning the address as a list of 4 bytes in network byte order (big endian).

Throws a FormatException if host is not a valid IPv4 address representation.

Source

static List<int> parseIPv4Address(String host) {
  void error(String msg) {
    throw new FormatException('Illegal IPv4 address, $msg');
  }
  var bytes = host.split('.');
  if (bytes.length != 4) {
    error('IPv4 address should contain exactly 4 parts');
  }
  // TODO(ajohnsen): Consider using Uint8List.
  return bytes
      .map((byteString) {
        int byte = int.parse(byteString);
        if (byte < 0 || byte > 255) {
          error('each part must be in the range of `0..255`');
        }
        return byte;
      })
      .toList();
}