Source code for gatenet.service_detectors.imap
"""
imap.py
-------
Service detection strategy for IMAP protocol.
Public API:
- IMAPDetector
"""
from typing import Optional
from gatenet.service_detectors import ServiceDetector
[docs]
class IMAPDetector(ServiceDetector):
"""
Service detector for IMAP servers.
Detects IMAP or IMAPS servers from port and banner.
"""
[docs]
def detect(self, port: int, banner: str) -> Optional[str]:
if port not in (143, 993) and 'imap' not in banner.lower():
return None
if 'imaps' in banner.lower() or port == 993:
return "IMAPS Server"
if 'imap' in banner.lower():
return "IMAP Server"
return None