• detecting client software

    From opicron@21:3/126 to All on Friday, November 01, 2024 15:06:42
    Heyz All,

    If memory serves me right I think I once saw a script coming through for Mystic in which the telnet client could be detected.

    Im trying to detect fTelnet, Netrunner and Syncterm clients. Does anybody remember such command?

    Thx,
    oP!

    ... A Meteor is an example of a rock star.

    --- Mystic BBS v1.12 A47 2021/12/24 (Linux/64)
    * Origin: TheForze - bbs.theforze.eu:23 (21:3/126)
  • From j0hnny a1pha@21:4/158 to opicron on Friday, November 01, 2024 08:44:21
    Heyz All,

    If memory serves me right I think I once saw a script coming through
    for Mystic in which the telnet client could be detected.

    Im trying to detect fTelnet, Netrunner and Syncterm clients. Does
    anybody remember such command?

    I'm not sure about detecting specific clients, vs term capabilities? I
    wrote this a while back in Go + Lua to make some assumptions about what
    the terminal *might* be, based on its detected capabilities. Talisman has
    a built-in function in its repo for this (C++). I was using it to make
    sure I could serve loadable fonts and use extended palattes, etc.

    https://github.com/robbiew/go-pn-dih

    (this is a demo of PHENOM's drop file format intended to help unlock more modern capabilities for door creators).


    |07 .'|08.
    |07 ||15o|08| |03J0hnny A1pha
    |07 .'|15o|08'. |06gOLD mINE HQ
    |07 |.-.|08| |08---------------------
    |07 '|14( |12)|08' |05SpaceJunkBBS.com|13:|052323
    |07 |12)

    --- Talisman v0.54-dev (Linux/x86_64)
    * Origin: Space Junk! BBS :: SpaceJunkBBS.com:2323 (21:4/158)
  • From j0hnny a1pha@21:4/158 to opicron on Friday, November 01, 2024 11:23:03
    Nice lead, thanks! I'll dig through this now ^^.

    Much appreciated,
    oP!

    Oh, looks like I was explicitly looking for Term Type!

    -- detect term capabilities
    if (termtype == string.lower("ANSI-256COLOR-RGB")) or (cols>80) then
    terminal = "Netrunner"
    elseif termtype == string.lower("syncterm") then
    terminal = "Syncterm"
    elseif termtype == string.lower("magiterm") then
    terminal = "Magiterm"
    else
    terminal = "ANSI-Term"
    end
    if (terminal == "Netrunner") or (terminal == "ANSI-Term") or (terminal == "Magiterm")then
    loadablefonts = false
    else
    loadablefonts = true
    end
    if (terminal == "Syncterm") or (terminal == "Netrunner") or (terminal == "Magiterm") then
    xtendpalette = true
    else
    xtendpalette = false
    end



    |07 .'|08.
    |07 ||15o|08| |03J0hnny A1pha
    |07 .'|15o|08'. |06gOLD mINE HQ
    |07 |.-.|08| |08---------------------
    |07 '|14( |12)|08' |05SpaceJunkBBS.com|13:|052323
    |07 |12)

    --- Talisman v0.54-dev (Linux/x86_64)
    * Origin: Space Junk! BBS :: SpaceJunkBBS.com:2323 (21:4/158)
  • From opicron@21:3/126 to j0hnny a1pha on Friday, November 01, 2024 16:15:48
    I'm not sure about detecting specific clients, vs term capabilities? I wrote this a while back in Go + Lua to make some assumptions about what the terminal *might* be, based on its detected capabilities. Talisman has a built-in function in its repo for this (C++). I was using it to make sure I could serve loadable fonts and use extended palattes, etc.

    Nice lead, thanks! I'll dig through this now ^^.

    Much appreciated,
    oP!

    ... As a matter of fact, it IS a banana in my pocket!

    --- Mystic BBS v1.12 A47 2021/12/24 (Linux/64)
    * Origin: TheForze - bbs.theforze.eu:23 (21:3/126)
  • From opicron@21:3/126 to j0hnny a1pha on Friday, November 01, 2024 19:40:14
    Oh, looks like I was explicitly looking for Term Type!

    -- detect term capabilities
    if (termtype == string.lower("ANSI-256COLOR-RGB")) or (cols>80) then
    terminal = "Netrunner"
    elseif termtype == string.lower("syncterm") then
    terminal = "Syncterm"
    elseif termtype == string.lower("magiterm") then
    terminal = "Magiterm"
    else
    terminal = "ANSI-Term"
    end

    Thats the function I was looking for, and luckily MPY also has a terminfo function.

    Now to let my startup.mps catch all those script kiddie bots TermInfo. See if I can preblock them from clogging up the nodes.

    oP!

    ... No one knows what's next, but everybody does it.

    --- Mystic BBS v1.12 A49 2024/05/29 (Linux/64)
    * Origin: TheForze - bbs.theforze.eu:23 (21:3/126)
  • From Digital Man@21:1/183 to j0hnny a1pha on Wednesday, November 06, 2024 00:46:41
    Re: detecting client software
    By: j0hnny a1pha to opicron on Fri Nov 01 2024 08:44 am

    (this is a demo of PHENOM's drop file format intended to help unlock more modern capabilities for door creators).

    A JSON drop file format for modern doors isn't a bad idea.
    --
    digital man (rob)

    Synchronet/BBS Terminology Definition #61:
    PETSCII = PET Standard Code of Information Interchange (a.k.a. CBM ASCII) Norco, CA WX: 56.9øF, 51.0% humidity, 1 mph ESE wind, 0.00 inches rain/24hrs --- SBBSecho 3.21-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (21:1/183)