{"id":17226672,"url":"https://github.com/allanpk716/go-protocol-detector","last_synced_at":"2026-01-20T04:07:04.510Z","repository":{"id":50267722,"uuid":"348319696","full_name":"allanpk716/go-protocol-detector","owner":"allanpk716","description":"Network protocol detector by golang. Support  RDP、SSH、FTP、Telnet、VNC、SFTP etc.","archived":false,"fork":false,"pushed_at":"2026-01-15T11:13:55.000Z","size":904,"stargazers_count":46,"open_issues_count":1,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-15T15:35:58.837Z","etag":null,"topics":["detect","ftp","protocol","rdp","scanner","sftp","ssh","telnet","vnc"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/allanpk716.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-16T11:21:25.000Z","updated_at":"2026-01-15T11:13:58.000Z","dependencies_parsed_at":"2024-06-18T21:10:47.660Z","dependency_job_id":"1183a7b1-2181-4b9f-97c4-ba248fa4f8dd","html_url":"https://github.com/allanpk716/go-protocol-detector","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/allanpk716/go-protocol-detector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allanpk716%2Fgo-protocol-detector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allanpk716%2Fgo-protocol-detector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allanpk716%2Fgo-protocol-detector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allanpk716%2Fgo-protocol-detector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/allanpk716","download_url":"https://codeload.github.com/allanpk716/go-protocol-detector/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allanpk716%2Fgo-protocol-detector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28595475,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["detect","ftp","protocol","rdp","scanner","sftp","ssh","telnet","vnc"],"created_at":"2024-10-15T04:16:53.377Z","updated_at":"2026-01-20T04:07:04.506Z","avatar_url":"https://github.com/allanpk716.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go Protocol Detector\n\n[[中文]](https://github.com/allanpk716/go-protocol-detector/blob/master/ReadMeThings/readme_cn.md)\n\nNetwork protocol detector. \n\n**Not Stable Version !** \n\nMay be refactored in future use.\n\n## Support Protocol\n\n* RDP\n\n* FTP\n\n* SFTP\n\n  \u003e SFTP (SSH File Transfer Protocol) detection using protocol analysis.\n  \u003e\n  \u003e Detects SSH service and SFTP subsystem availability without authentication.\n  \u003e\n  \u003e Fast 3-layer detection: TCP connection → SSH protocol identification → SFTP subsystem query.\n\n* SSH\n\n* VNC\n\n* Telnet\n\n* RustDesk\n\n  \u003e RustDesk remote desktop software detection.\n  \u003e\n  \u003e - **rustdesk-hbbs**: HBBS (Rendezvous/Signaling Server) detection on port 21116\n  \u003e - **rustdesk-hbbr**: HBBR (Relay Server) detection on port 21117\n  \u003e\n  \u003e Uses protobuf-based detection for reliable RustDesk server identification.\n\n## How to use\n\n### Use From Code:\n\n* [detector_test.go](https://github.com/allanpk716/go-protocol-detector/blob/master/pkg/detector_test.go)\n* [scan_tools_test.go](https://github.com/allanpk716/go-protocol-detector/blob/master/pkg/scan_tools_test.go)\n\n### Use From Executable Program:\n\n[Releases](https://github.com/allanpk716/go-protocol-detector/releases)\n\n```powershell\nNAME:\n   go-protocol-detector - use like: go-protocol-detector --protocol=rdp --host=172.20.65.89-101 --port=3389\n\nUSAGE:\n   go-protocol-detector [global options] command [command options] [arguments...]\n\nVERSION:\n   v0.10.0\n\nDESCRIPTION:\n   Multi-protocol scan tool\n\nCOMMANDS:\n   help, h  Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --help, -h        show help (default: false)\n   --host value      support 3 diffs types: 192.168.1.1,192.168.1.100-254,192.168.1.0/24 (default: \"192.168.1.1\")\n   --password value  if you scan sftp, need give a Password: root (default: \"root\")\n   --port value      support like: 22,80,443,3380-3390 (default: \"22\")\n   --prikey value    if you scan sftp, need give a pri key Full Path( user name or this priKeyFPath only chose one): ~/.ssh/id_rsa (default: \"~/.ssh/id_rsa\")\n   --protocol value  select only one protocol: common | ftp | rdp | rustdesk-hbbs | rustdesk-hbbr | sftp | ssh | telnet | vnc (default: \"common\")\n   --thread value    10 (default: 10)\n   --timeout value   1000 ms (default: 1000)\n   --user value      if you scan sftp, need give a UserName: root (default: \"root\")\n   --version, -v     print the version (default: false)\n```\n\nExample:\n\n```powershell\ngo-protocol-detector --protocol=rdp --host=172.20.65.89-101 --port=3389\n\ngo-protocol-detector --protocol=rdp --host=172.20.65.89-101 --port=3389,1024-2000\n\n# Fast SFTP detection (recommended, no authentication required)\ngo-protocol-detector --protocol=sftp --host=172.20.65.1/24 --port=22\n\n# SFTP detection with authentication (when required)\ngo-protocol-detector --protocol=sftp --host=172.20.65.1/24 --port=22 --user=root --password=123\n\n# RustDesk HBBS detection (port 21116)\ngo-protocol-detector --protocol=rustdesk-hbbs --host=192.168.1.1-254 --port=21116\n\n# RustDesk HBBR detection (port 21117)\ngo-protocol-detector --protocol=rustdesk-hbbr --host=192.168.1.1-254 --port=21117\n```\n\n## TODO\n\n- [ ] Optimize SFTP detection performance and credential testing strategy\n\n## Give a reward\n\nIf the tools I have made are of some help to you, you can buy me a cup of coffee or sponsor a little server fee.\n\n![收款码](ReadMeThings/pics/收款码.png)\n\n## How to implement\n\n[[中文教程]](https://github.com/allanpk716/go-protocol-detector/blob/master/ReadMeThings/readme_cn_tutorial.md)\n\n## Thanks\n\n* [ziutek/telnet](ziutek/telnet)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallanpk716%2Fgo-protocol-detector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fallanpk716%2Fgo-protocol-detector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallanpk716%2Fgo-protocol-detector/lists"}