Git Product home page Git Product logo

Comments (5)

rickparrish avatar rickparrish commented on September 23, 2024

I'm not 100% sure what you're saying, but I'm guessing you have fTelnet connecting to your own instance of fTelnetProxy, and then fTelnetProxy connecting to your BBS. And in your BBS log files you're seeing your own IP address instead of the IP address of the user who is connecting.

If that's right, then that's expected behaviour. The user connects to fTelnetProxy, which will see the user's real IP address. But then fTelnetProxy connects to your BBS, so that's why your BBS sees your own IP address.

I'm not a networking expert, but I don't believe there is any way around that. The best you can do is use something like I implemented in my last commit, where the BBS can send the telnet command "DO SEND-LOCATION" (not literally that text), and then fTelnet will reply back with the client's IP address.

from ftelnet.

ptaylor2 avatar ptaylor2 commented on September 23, 2024

Rick

All the socket library files include the function of getting the clients IP
address and the port number on the clients.

On Monday, February 29, 2016, rickparrish [email protected] wrote:

I'm not 100% sure what you're saying, but I'm guessing you have fTelnet
connecting to your own instance of fTelnetProxy, and then fTelnetProxy
connecting to your BBS. And in your BBS log files you're seeing your own IP
address instead of the IP address of the user who is connecting.

If that's right, then that's expected behaviour. The user connects to
fTelnetProxy, which will see the user's real IP address. But then
fTelnetProxy connects to your BBS, so that's why your BBS sees your own IP
address.

I'm not a networking expert, but I don't believe there is any way around
that. The best you can do is use something like I implemented in my last
commit, where the BBS can send the telnet command "DO SEND-LOCATION" (not
literally that text), and then fTelnet will reply back with the client's IP
address.


Reply to this email directly or view it on GitHub
#3 (comment).

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024

Sorry, not sure what you're referring to.

from ftelnet.

tracker1 avatar tracker1 commented on September 23, 2024

@rickparrish I think he means that the BBS is showing CLIENT_IP, but that is showing his server's IP, not the actual client IP address.

@ptaylor2 unfortunately, that is what a proxy does, and it isn't setup to pass through your actual IP, it isn't part of telnet or rlogin as protocols. It MIGHT be possible to do a WHOIS-style lookup, but that would be a lot of work, and some BBS software wouldn't readily support it in the box.. synchronet would be an easy enough extension afaik.

from ftelnet.

rickparrish avatar rickparrish commented on September 23, 2024

@tracker1 Yeah that's what I was assuming. So there are two telnet options that can help with this:

RFC946: TERMINAL LOCATION NUMBER is specifically for transmitting the client's IP address, but it only supports sending a 64bit integer (32bits for IP, 32bits for terminal number), so it only supports IPv4.

RFC779: SEND-LOCATION is not specifically meant for transmitting an IP address, but since it supports sending an arbitrary length ASCII string there's no reason it can't be used to send either an IPv4 or IPv6 address. For this reason it's the better of the two options.

I implemented both options in fTelnet a couple months ago, so a server that wants to know the client's real IP address can use either option to get it. Of course since it's the client sending the information it's no more trustworthy than say HTTP headers like HTTP_USER_AGENT or HTTP_REFERER.

Ideally fTelnetProxy would intercept the option request and answer instead, since it can supply the guaranteed-to-be-correct IP, but I'll leave that for someone else who is more worried about rogue clients lying about their IP.

from ftelnet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.