frontierbbs.co.uk:23

Connection Banner:

Synchronet BBS for Linux Version 3.21 Telnet connection from: 64.227.40.173 Resolving hostname... _  Synchronet BBS for Linux Version 3.21 Copyright 2026 Rob Swindell YOUR CONNECTION DETAILS Ŀ You have connected to the BBS using the Telnet protocol Your internet IP address will be logged as 64.227.40.173 Your terminal screen size is 80x@ROWS CP437 / ANSI THE BBS SERVER DETAILS Ŀ Our address is frontierbbs.co.uk and you're on node 1 of 16 Your SysOp is Dave Parker. If you're new to Frontier BBS, type New at the prompt below to register. If you've visited us before welcome back! Enter your username below to log on. Enter User Name or 'New' or 'Guest' Login:

Server URLs

Server Location: 🇬🇧 United Kingdom (GeoIP)

Listing

  • BBS Name: Frontier BBS (from listing)

  • Sysop: Dave Parker

  • Listed Location: Redhill, , United Kingdom

BBS Software

Detected: Synchronet

Encoding

  • Effective encoding: utf-8

  • Override: utf-8 (from bbslist.txt)

  • Scanner detected: utf-8

Telnet Fingerprint

cdf52165b1ba8b95

This fingerprint is shared by 256 other servers.

Options offered by server: AARDWOLF, ATCP, ECHO, GMCP, MCCP2, MCCP3, MSDP, MSP, MSSP, MXP, SGA, ZMP

Options requested from client: NAWS, NEW_ENVIRON, TSPEED, TTYPE

The complete JSON record collected during the scan, including Telnet negotiation results and banner data.

Show JSON
{
  "server-probe": {
    "fingerprint": "cdf52165b1ba8b95",
    "fingerprint-data": {
      "offered-options": [
        "AARDWOLF",
        "ATCP",
        "ECHO",
        "GMCP",
        "MCCP2",
        "MCCP3",
        "MSDP",
        "MSP",
        "MSSP",
        "MXP",
        "SGA",
        "ZMP"
      ],
      "probed-protocol": "server",
      "refused-options": [
        "BINARY",
        "CHARSET",
        "COM_PORT",
        "EOR",
        "STATUS"
      ],
      "requested-options": [
        "NAWS",
        "NEW_ENVIRON",
        "TSPEED",
        "TTYPE"
      ],
      "scan-type": "quick"
    },
    "session_data": {
      "banner_after_return": "\u001b[37;40m\u001b[1m\u001b[35m \udcda\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\u001b[0;37;40m\u001b[45m\u001b[30m \u001b[1m\u001b[37mYOUR CONNECTION DETAILS \u001b[40m\u001b[35m\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\u013f\r\n\u001b[0;37;40m\u001b[3C\u001b[1mYou have connected to the BBS using the \u001b[35mTelnet\u001b[37m protocol\r\n\u001b[0;37;40m\u001b[3C\u001b[1mYour internet IP address will be logged as \u001b[35m64.227.40.173\r\n\u001b[0;37;40m\u001b[3C\u001b[1mYour terminal screen size is \u001b[35m80x@ROWS CP437 \u001b[37m/ \u001b[35mANSI\r\n \udcc0\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcd9\r\n \u001b[34m\udcda\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\u001b[45m\u001b[37m THE BBS SERVER DETAILS \u001b[40m\u001b[34m\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\u013f\r\n\u001b[0;37;40m\u001b[3C\u001b[1mOur address is \u001b[35mfrontierbbs.co.uk\u001b[0;37;40m \u001b[1mand you're on node \u001b[35m1\u001b[37m of \u001b[35m16\r\n\u001b[0;37;40m\u001b[3C\u001b[1mYour SysOp is \u001b[35mDave Parker\u001b[37m.\r\n \u001b[34m\udcc0\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcc4\udcd9\r\n\r\n\u001b[37m If you're new to Frontier BBS, type \u001b[35mNew\u001b[37m at the prompt below to register.\r\n If you've visited us before welcome back! Enter your username below to log on.\r\n\u001b[0m\r\n\u001b[37;40m\u001b[1m\u001b[36mEnter \u001b[37mUser Name\u001b[36m or '\u001b[33mNew\u001b[36m' or '\u001b[33mGuest\u001b[36m'\r\nLogin: \u001b[37m",
      "banner_before_return": "\r\nSynchronet BBS for Linux  Version 3.21\r\nTelnet connection from: 64.227.40.173\r\nResolving hostname...\r\n\r\n\u001b[s\u001b[0c\u001b[255B\u001b[255C\u001b[30;40m\b_\u001b[6n\u001b[u\u001b[!_\r\ufeff\u001b[6n\u001b[0m\u001b[2J\u001b[H\f\r\r      Synchronet BBS for Linux  Version 3.21  Copyright 2026 Rob Swindell\r\n",
      "dsr_replies": 2,
      "dsr_requests": 2,
      "encoding": "utf-8",
      "option_states": {
        "server_offered": {
          "AARDWOLF": true,
          "ATCP": true,
          "ECHO": true,
          "GMCP": true,
          "MCCP2": true,
          "MCCP3": true,
          "MSDP": true,
          "MSP": true,
          "MSSP": true,
          "MXP": true,
          "SGA": true,
          "ZMP": true
        },
        "server_requested": {
          "AARDWOLF": false,
          "ATCP": false,
          "GMCP": false,
          "MCCP2": false,
          "MCCP3": false,
          "MSDP": false,
          "MSP": false,
          "MSSP": false,
          "MXP": false,
          "NAWS": true,
          "NEW_ENVIRON": true,
          "SNDLOC": false,
          "TSPEED": true,
          "TTYPE": true,
          "ZMP": false
        }
      },
      "scan_type": "quick",
      "timing": {
        "probe": 0.5047075748443604,
        "total": 13.430448293685913
      }
    }
  },
  "sessions": [
    {
      "connected": "2026-03-07T04:12:22.059881+00:00",
      "host": "frontierbbs.co.uk",
      "ip": "87.106.99.186",
      "port": 23
    }
  ]
}

Connection Log

Debug-level log of the Telnet negotiation session, showing each IAC (Interpret As Command) exchange between client and server.

Generated by telnetlib3-fingerprint

telnetlib3-fingerprint --loglevel=debug frontierbbs.co.uk 23
Show Logfile
DEBUG client.py:1193 Fingerprint client: host=frontierbbs.co.uk port=23
INFO client_base.py:186 Connected to <Peer 87.106.99.186 23>
DEBUG stream_writer.py:3330 pending_option[WILL + MXP] = True
DEBUG stream_writer.py:1019 send IAC WILL MXP
DEBUG stream_writer.py:3330 pending_option[WILL + ATCP] = True
DEBUG stream_writer.py:1019 send IAC WILL ATCP
DEBUG stream_writer.py:3330 pending_option[WILL + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1019 send IAC WILL MCCP3_COMPRESS
DEBUG stream_writer.py:3330 pending_option[WILL + GMCP] = True
DEBUG stream_writer.py:1019 send IAC WILL GMCP
DEBUG stream_writer.py:3330 pending_option[WILL + AARDWOLF] = True
DEBUG stream_writer.py:1019 send IAC WILL AARDWOLF
DEBUG stream_writer.py:3330 pending_option[WILL + MSP] = True
DEBUG stream_writer.py:1019 send IAC WILL MSP
DEBUG stream_writer.py:3330 pending_option[WILL + MSDP] = True
DEBUG stream_writer.py:1019 send IAC WILL MSDP
DEBUG stream_writer.py:3330 pending_option[WILL + MSSP] = True
DEBUG stream_writer.py:1019 send IAC WILL MSSP
DEBUG stream_writer.py:3330 pending_option[WILL + ZMP] = True
DEBUG stream_writer.py:1019 send IAC WILL ZMP
DEBUG stream_writer.py:3330 pending_option[WILL + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1019 send IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:3330 pending_option[DO + MXP] = True
DEBUG stream_writer.py:1019 send IAC DO MXP
DEBUG stream_writer.py:3330 pending_option[DO + ATCP] = True
DEBUG stream_writer.py:1019 send IAC DO ATCP
DEBUG stream_writer.py:3330 pending_option[DO + MCCP3_COMPRESS] = True
DEBUG stream_writer.py:1019 send IAC DO MCCP3_COMPRESS
DEBUG stream_writer.py:3330 pending_option[DO + GMCP] = True
DEBUG stream_writer.py:1019 send IAC DO GMCP
DEBUG stream_writer.py:3330 pending_option[DO + AARDWOLF] = True
DEBUG stream_writer.py:1019 send IAC DO AARDWOLF
DEBUG stream_writer.py:3330 pending_option[DO + MSP] = True
DEBUG stream_writer.py:1019 send IAC DO MSP
DEBUG stream_writer.py:3330 pending_option[DO + MSDP] = True
DEBUG stream_writer.py:1019 send IAC DO MSDP
DEBUG stream_writer.py:3330 pending_option[DO + MSSP] = True
DEBUG stream_writer.py:1019 send IAC DO MSSP
DEBUG stream_writer.py:3330 pending_option[DO + ZMP] = True
DEBUG stream_writer.py:1019 send IAC DO ZMP
DEBUG stream_writer.py:3330 pending_option[DO + MCCP2_COMPRESS] = True
DEBUG stream_writer.py:1019 send IAC DO MCCP2_COMPRESS
DEBUG stream_writer.py:768 recv IAC DONT MXP
DEBUG stream_writer.py:1959 handle_dont(MXP)
DEBUG stream_writer.py:3330 pending_option[WILL + MXP] = False
DEBUG stream_writer.py:3330 local_option[MXP] = False
DEBUG stream_writer.py:768 recv IAC DONT ATCP
DEBUG stream_writer.py:1959 handle_dont(ATCP)
DEBUG stream_writer.py:3330 pending_option[WILL + ATCP] = False
DEBUG stream_writer.py:3330 local_option[ATCP] = False
DEBUG stream_writer.py:768 recv IAC DONT MCCP3_COMPRESS
DEBUG stream_writer.py:1959 handle_dont(MCCP3_COMPRESS)
DEBUG stream_writer.py:3330 pending_option[WILL + MCCP3_COMPRESS] = False
DEBUG stream_writer.py:3330 local_option[MCCP3_COMPRESS] = False
DEBUG stream_writer.py:768 recv IAC DONT GMCP
DEBUG stream_writer.py:1959 handle_dont(GMCP)
DEBUG stream_writer.py:3330 pending_option[WILL + GMCP] = False
DEBUG stream_writer.py:3330 local_option[GMCP] = False
DEBUG stream_writer.py:768 recv IAC DONT AARDWOLF
DEBUG stream_writer.py:1959 handle_dont(AARDWOLF)
DEBUG stream_writer.py:3330 pending_option[WILL + AARDWOLF] = False
DEBUG stream_writer.py:3330 local_option[AARDWOLF] = False
DEBUG stream_writer.py:768 recv IAC DONT MSP
DEBUG stream_writer.py:1959 handle_dont(MSP)
DEBUG stream_writer.py:3330 pending_option[WILL + MSP] = False
DEBUG stream_writer.py:3330 local_option[MSP] = False
DEBUG stream_writer.py:768 recv IAC DONT MSDP
DEBUG stream_writer.py:1959 handle_dont(MSDP)
DEBUG stream_writer.py:3330 pending_option[WILL + MSDP] = False
DEBUG stream_writer.py:3330 local_option[MSDP] = False
DEBUG stream_writer.py:768 recv IAC DONT MSSP
DEBUG stream_writer.py:1959 handle_dont(MSSP)
DEBUG stream_writer.py:3330 pending_option[WILL + MSSP] = False
DEBUG stream_writer.py:3330 local_option[MSSP] = False
DEBUG stream_writer.py:768 recv IAC DONT ZMP
DEBUG stream_writer.py:1959 handle_dont(ZMP)
DEBUG stream_writer.py:3330 pending_option[WILL + ZMP] = False
DEBUG stream_writer.py:3330 local_option[ZMP] = False
DEBUG stream_writer.py:768 recv IAC DONT MCCP2_COMPRESS
DEBUG stream_writer.py:1959 handle_dont(MCCP2_COMPRESS)
DEBUG stream_writer.py:3330 pending_option[WILL + MCCP2_COMPRESS] = False
DEBUG stream_writer.py:3330 local_option[MCCP2_COMPRESS] = False
DEBUG stream_writer.py:768 recv IAC WILL MXP
DEBUG stream_writer.py:1994 handle_will(MXP)
DEBUG stream_writer.py:993 skip DO MXP; pending_option = True
DEBUG stream_writer.py:3330 remote_option[MXP] = True
DEBUG stream_writer.py:3330 pending_option[DO + MXP] = False
DEBUG stream_writer.py:768 recv IAC WILL ATCP
DEBUG stream_writer.py:1994 handle_will(ATCP)
DEBUG stream_writer.py:993 skip DO ATCP; pending_option = True
DEBUG stream_writer.py:3330 remote_option[ATCP] = True
DEBUG stream_writer.py:3330 pending_option[DO + ATCP] = False
DEBUG stream_writer.py:768 recv IAC WILL MCCP3_COMPRESS
DEBUG stream_writer.py:1994 handle_will(MCCP3_COMPRESS)
DEBUG stream_writer.py:993 skip DO MCCP3_COMPRESS; pending_option = True
DEBUG stream_writer.py:3330 remote_option[MCCP3_COMPRESS] = True
DEBUG stream_writer.py:2059 MCCP3: client compression activated
DEBUG stream_writer.py:3330 pending_option[DO + MCCP3_COMPRESS] = False
DEBUG stream_writer.py:768 recv IAC WILL GMCP
DEBUG stream_writer.py:1994 handle_will(GMCP)
DEBUG stream_writer.py:993 skip DO GMCP; pending_option = True
DEBUG stream_writer.py:3330 remote_option[GMCP] = True
DEBUG stream_writer.py:1067 send IAC SB GMCP Core.Hello IAC SE
DEBUG stream_writer.py:1067 send IAC SB GMCP Core.Supports.Set IAC SE
INFO client.py:201 GMCP handshake: Core.Hello + Core.Supports.Set ['Char 1', 'Char.Vitals 1', 'Char.Items 1', 'Room 1', 'Room.Info
    1', 'Comm 1', 'Comm.Channel 1', 'Group 1']
DEBUG stream_writer.py:3330 pending_option[DO + GMCP] = False
DEBUG stream_writer.py:768 recv IAC WILL AARDWOLF
DEBUG stream_writer.py:1994 handle_will(AARDWOLF)
DEBUG stream_writer.py:993 skip DO AARDWOLF; pending_option = True
DEBUG stream_writer.py:3330 remote_option[AARDWOLF] = True
DEBUG stream_writer.py:3330 pending_option[DO + AARDWOLF] = False
DEBUG stream_writer.py:768 recv IAC WILL MSP
DEBUG stream_writer.py:1994 handle_will(MSP)
DEBUG stream_writer.py:993 skip DO MSP; pending_option = True
DEBUG stream_writer.py:3330 remote_option[MSP] = True
DEBUG stream_writer.py:3330 pending_option[DO + MSP] = False
DEBUG stream_writer.py:768 recv IAC WILL MSDP
DEBUG stream_writer.py:1994 handle_will(MSDP)
DEBUG stream_writer.py:993 skip DO MSDP; pending_option = True
DEBUG stream_writer.py:3330 remote_option[MSDP] = True
DEBUG stream_writer.py:3330 pending_option[DO + MSDP] = False
DEBUG stream_writer.py:768 recv IAC WILL MSSP
DEBUG stream_writer.py:1994 handle_will(MSSP)
DEBUG stream_writer.py:993 skip DO MSSP; pending_option = True
DEBUG stream_writer.py:3330 remote_option[MSSP] = True
DEBUG stream_writer.py:3330 pending_option[DO + MSSP] = False
DEBUG stream_writer.py:768 recv IAC WILL ZMP
DEBUG stream_writer.py:1994 handle_will(ZMP)
DEBUG stream_writer.py:993 skip DO ZMP; pending_option = True
DEBUG stream_writer.py:3330 remote_option[ZMP] = True
DEBUG stream_writer.py:3330 pending_option[DO + ZMP] = False
DEBUG stream_writer.py:768 recv IAC WILL MCCP2_COMPRESS
DEBUG stream_writer.py:1994 handle_will(MCCP2_COMPRESS)
DEBUG stream_writer.py:993 skip DO MCCP2_COMPRESS; pending_option = True
DEBUG stream_writer.py:3330 remote_option[MCCP2_COMPRESS] = True
DEBUG stream_writer.py:3330 pending_option[DO + MCCP2_COMPRESS] = False
DEBUG client_base.py:475 MCCP3 compression started (client→server)
DEBUG client_base.py:496 negotiation complete after 0.02s.
DEBUG stream_writer.py:768 recv IAC WILL ECHO
DEBUG stream_writer.py:784 WILL ECHO unsolicited
DEBUG stream_writer.py:1994 handle_will(ECHO)
DEBUG stream_writer.py:3330 pending_option[DO + ECHO] = True
DEBUG stream_writer.py:1019 send IAC DO ECHO
DEBUG stream_writer.py:3330 remote_option[ECHO] = True
DEBUG stream_writer.py:3330 pending_option[DO + ECHO] = False
DEBUG stream_writer.py:768 recv IAC WILL SGA
DEBUG stream_writer.py:784 WILL SGA unsolicited
DEBUG stream_writer.py:1994 handle_will(SGA)
DEBUG stream_writer.py:3330 pending_option[DO + SGA] = True
DEBUG stream_writer.py:1019 send IAC DO SGA
DEBUG stream_writer.py:3330 remote_option[SGA] = True
DEBUG stream_writer.py:3330 pending_option[DO + SGA] = False
DEBUG stream_writer.py:768 recv IAC DO TTYPE
DEBUG stream_writer.py:1836 handle_do(TTYPE)
DEBUG stream_writer.py:3330 pending_option[WILL + TTYPE] = True
DEBUG stream_writer.py:1019 send IAC WILL TTYPE
DEBUG stream_writer.py:3330 pending_option[SB + TTYPE] = True
DEBUG stream_writer.py:3330 local_option[TTYPE] = True
DEBUG stream_writer.py:3330 pending_option[WILL + TTYPE] = False
DEBUG stream_writer.py:768 recv IAC DO TSPEED
DEBUG stream_writer.py:1836 handle_do(TSPEED)
DEBUG stream_writer.py:3330 pending_option[WILL + TSPEED] = True
DEBUG stream_writer.py:1019 send IAC WILL TSPEED
DEBUG stream_writer.py:3330 pending_option[SB + TSPEED] = True
DEBUG stream_writer.py:3330 local_option[TSPEED] = True
DEBUG stream_writer.py:3330 pending_option[WILL + TSPEED] = False
DEBUG stream_writer.py:768 recv IAC DO SNDLOC
DEBUG stream_writer.py:1836 handle_do(SNDLOC)
DEBUG stream_writer.py:1944 DO SNDLOC not supported.
DEBUG stream_writer.py:3330 local_option[SNDLOC] = False
DEBUG stream_writer.py:1019 send IAC WONT SNDLOC
DEBUG stream_writer.py:768 recv IAC DO NAWS
DEBUG stream_writer.py:1836 handle_do(NAWS)
DEBUG stream_writer.py:3330 pending_option[WILL + NAWS] = True
DEBUG stream_writer.py:1019 send IAC WILL NAWS
DEBUG stream_writer.py:2453 send IAC SB NAWS (rows=25, cols=80) IAC SE
DEBUG stream_writer.py:3330 local_option[NAWS] = True
DEBUG stream_writer.py:3330 pending_option[WILL + NAWS] = False
DEBUG stream_writer.py:768 recv IAC DO NEW_ENVIRON
DEBUG stream_writer.py:1836 handle_do(NEW_ENVIRON)
DEBUG stream_writer.py:3330 pending_option[WILL + NEW_ENVIRON] = True
DEBUG stream_writer.py:1019 send IAC WILL NEW_ENVIRON
DEBUG stream_writer.py:3330 pending_option[SB + NEW_ENVIRON] = True
DEBUG stream_writer.py:3330 local_option[NEW_ENVIRON] = True
DEBUG stream_writer.py:3330 pending_option[WILL + NEW_ENVIRON] = False
DEBUG stream_writer.py:3330 pending_option[DO + BINARY] = True
DEBUG stream_writer.py:1019 send IAC DO BINARY
DEBUG stream_writer.py:3330 pending_option[DO + STATUS] = True
DEBUG stream_writer.py:1019 send IAC DO STATUS
DEBUG stream_writer.py:3330 pending_option[DO + CHARSET] = True
DEBUG stream_writer.py:1019 send IAC DO CHARSET
DEBUG stream_writer.py:3330 pending_option[DO + EOR] = True
DEBUG stream_writer.py:1019 send IAC DO EOR
DEBUG stream_writer.py:3330 pending_option[DO + COM_PORT_OPTION] = True
DEBUG stream_writer.py:1019 send IAC DO COM_PORT_OPTION
INFO fingerprinting.py:755 connection for server fingerprint cdf52165b1ba8b95
INFO client_base.py:118 Connection closed to <Peer 87.106.99.186 23>