identifyProtocolFromBanner function

String identifyProtocolFromBanner(
  1. String banner
)

Implementation

String identifyProtocolFromBanner(String banner) {
  final s = banner.trim();
  if (s.startsWith('SSH-')) {
    return 'SSH';
  }
  if (RegExp(r'^HTTP/\d', caseSensitive: false).hasMatch(s) ||
      s.toLowerCase().contains('server:')) {
    return 'HTTP';
  }
  if (RegExp(r'^220', caseSensitive: false).hasMatch(s) &&
      s.toUpperCase().contains('FTP')) {
    return 'FTP';
  }
  if (RegExp(r'^220', caseSensitive: false).hasMatch(s) &&
      s.toUpperCase().contains('SMTP')) {
    return 'SMTP';
  }
  if (s.startsWith('220')) {
    return 'SMTP/FTP';
  }
  if (s.startsWith('220 ')) {
    return 'Service';
  }
  if (s.toUpperCase().contains('TLS') || s.toUpperCase().contains('SSL')) {
    return 'TLS/SSL';
  }
  if (RegExp(r'GET |POST |HEAD ', caseSensitive: false).hasMatch(s)) {
    return 'HTTP-REQ';
  }
  return '';
}