identifyProtocolFromBanner function
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 '';
}