By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,758 Members | 1,225 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,758 IT Pros & Developers. It's quick & easy.

Parsing Telnet Commands?

P: n/a
Hi.

Anybody know of any good code examples out there on
how to take a telnet command and parse it?

Thanks!
Jan 9 '08 #1
Share this Question
Share on Google+
5 Replies


P: n/a
There is a sourceforge project which claims to parse telnet commands:

http://dotnettelnet.sourceforge.net/

There are some other commercial offerings, I believe.

In the end, you can always do it yourself, using the protocol reference:

http://www.faqs.org/rfcs/rfc854.html
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"pbd22" <du*****@gmail.comwrote in message
news:f9**********************************@v29g2000 hsf.googlegroups.com...
Hi.

Anybody know of any good code examples out there on
how to take a telnet command and parse it?

Thanks!

Jan 9 '08 #2

P: n/a
Thanks.

I'll take a look at the ideas behind the opensource project tonight.

I don't see it being too too complicated (of course, i shouldn't count
my eggs).
The point, really, where I am having problems is this:

telnet command( "open" ) >.net parser ( "something new").

I mean, a telnet command can be turned into a string, right?

So, if somebody remotely telnets to my computer and then
types some commands, I should be able to use TcpListener
to catch those commands and manipulate them, right?

The point where I am having problems is reading the bytestream
and translating that into a string.

Does anybody out there have some initial ideas?
Jan 10 '08 #3

P: n/a
pbd22 wrote:

Telnet (AFAIK) isn't a whole lot more than a terminal emulator stuck
onto the client side of a TCP connection. And you seem to be focused on
the server side, so we can leave aside terminal control codes.
telnet command( "open" ) >.net parser ( "something new").

I mean, a telnet command can be turned into a string, right?
The characters typed on the client end get sent over the TCP connection
pretty much literally as ASCII, yes.
So, if somebody remotely telnets to my computer and then
types some commands, I should be able to use TcpListener
to catch those commands and manipulate them, right?
Yes. Create a TCP server program which listens on port 23.
The point where I am having problems is reading the bytestream
and translating that into a string.
Does anybody out there have some initial ideas?
For very basic initial support, read and buffer (in a List<bytefor
example) each byte one at a time until you see a line-feed (byte value
10), then convert it into a string using Encoding.ASCII, or maybe by
manually casting the byte values into chars and stuffing into a
StringBuilder.

-- Barry

--
http://barrkel.blogspot.com/
Jan 10 '08 #4

P: n/a
Should I be sending the

username:
password:

prompt when the user initiates the session?
There is no other way to do this, right?

I have hijacked the session so all interactivity
is coming from my program at that point, right?

If this is true, then I need to be reading from some
DB or file for access permissions, right?

Thanks.
Peter
Jan 11 '08 #5

P: n/a
Can somebody please show me what the code would look like for sending
a
username and
password request once a telnet session is started and how to capture
that
information and parse it (if that isnt too tall a call).

Below is what I have (in a nutshell) and I am unclear what to put in
my
"TheConnectionHandler()" method. I am guessing this is where i send
user/pass request, wait for response, and parse accordingly?

I would really appreciate some help and code suggestions in the
Handler.

Thanks!
TcpClient socket;
TcpListener listener = new TcpListener(IPAddress.Any,
23);

listener.Start();
while( true)
{

socket = listener.AcceptTcpClient();
connectionQueue.Enqueue( socket);

Thread workingthread = new Thread( new
ThreadStart(TheConnectionHandler));
workingthread.Start();

}
public void TheConnectionHandler()
{

System.Net.Sockets.TcpClient socket =
(System.Net.Sockets.TcpClient)connectionQueue.Dequ eue();
}
Jan 11 '08 #6

This discussion thread is closed

Replies have been disabled for this discussion.