docs: function IP(buffer, start, end) {
    !Array.isArray(buffer) || (buffer = new Buffer(buffer));
    if (Buffer.isBuffer(buffer)) {
      start || (start = 0);
      end || (end = buffer.length);
      if (end - start === 4) {
        this.version = 4;
      } else if (end - start === 16) {
        this.version = 6;
      } else {
        throw 'parameters incorrect!';
      }
      this.binary = buffer.slice(start, end);
    }
    else {
      throw 'parameters incorrect!';
    }
  }