PDA

View Full Version : Telnet با سی شارپ



headshoter
شنبه 11 آبان 1392, 23:11 عصر
سلام ؛
میخوام یه برنامه بنویسم که باهاش تلنت کنم،
ولی همین اول ماجرا به مشکل خوردم.
وقتی میخوام به سرور وصل بشم یه سری کد نامفهوم از سمت سرور برام بر میگرده که نمیدونم چه هست ؟


نظر اساتید در این مورد چی هست ؟ به نظرتون چه کار باید بکنم و کجای کار اشتباه هست ؟
ممنون.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;

namespace TELNET
{
class Program
{
static void Main(string[] args)
{
var rec=new byte[40];
TcpClient client = new TcpClient();
client.Connect("192.168.11.123", 23);
client.GetStream().Read(rec, 0, 40);
for(int i=0;i<rec.Length;i++)
Console.Write(rec[i]+" : ");
Console.Read();
}

}
}

mhsmity
یک شنبه 12 آبان 1392, 01:11 صبح
بخشید تلنت کنم یعنی چی؟
اصلا شما می خواید چی کار کنین؟
ممنونم.

rahnema1
یک شنبه 12 آبان 1392, 05:31 صبح
به این راحتی نیست. از برنامه های آماده مثل این یا موارد دیگه استفاده کنید:
http://www.codeproject.com/Articles/19071/Quick-tool-A-minimalistic-Telnet-library

اگه فایل زیپ دانلود نشد در قسمت Browse code می تونید کدها را مشاهده و کپی کنید

headshoter
دوشنبه 13 آبان 1392, 19:00 عصر
بخشید تلنت کنم یعنی چی؟
اصلا شما می خواید چی کار کنین؟
ممنونم.
من میخوام یه برنامه کنسول سی شارپ بنویستم که ای پی و یوزر پسورد سرور رو بگیره و یه کانکشن تلنت برنه به سرور و کامند بفرسته سمت سرور، که به این مشکل بر خوردم !



به این راحتی نیست. از برنامه های آماده مثل این یا موارد دیگه استفاده کنید:
http://www.codeproject.com/Articles/19071/Quick-tool-A-minimalistic-Telnet-library

اگه فایل زیپ دانلود نشد در قسمت Browse code می تونید کدها را مشاهده و کپی کنید
مرسی بابت راهنمایی ، ولی متاسفانه این برنامه هم دست کار نمیکنه ؛ کانکشن برقرار میشه ، لاگین هم میکنه ولی کامند نمیتونه بفرسته !
من اینجوری که توی سورس این برنامه دیدم اون کد هایی که من میگرفتم یه سری Verb هستند ؛ حالا من نمیدونم با این verb ها چجوری باید تعامل داشته باشم (:لبخندساده:) !

112551

.Any help would be greatly appreciated
ممنون.

rahnema1
دوشنبه 13 آبان 1392, 20:47 عصر
والا من اجرا کردم باهاش کامند هم فرستادم به یک modem adsl توی همون پنجره کامند تایپ کردم نمی دونم یک جا خوندم باید پروتکل رو پیاده سازی کرد اگه جواب نمیده توی گوگل جستجو کنید لایبری های دیگه غیر از این رو امتحان کنید

returnx
دوشنبه 13 آبان 1392, 23:34 عصر
نه صرفا telnet ، بلکه هر برنامه کلاینت / سروری که نیاز به مکالمه دارن با هم و قرار زبان همدیگرو بفهمن از یکسری پروتکل هایی که برای هر دو برنامه قابل فهم هست استفاده می کنند ،
telnet هم به همین ترتیب، در واقع شما داری یک telnet client مینویسید ، پس در نتیجه شما هم باید زبان برنامه ی سرور را بفهمید و هم باید سعی کنید مثل اون صحبت کنید...
قوانین استاندارد telnet برای مکالمه بین برنامه کلاینت و سرور :
قالب پیام های telnet به این صورت هست :
[IAC] [Command Code] [Option Code]
بجای IAC کد 255 قرار میگیره که بیان گر این هست که سرور باید با این خط از دستورات به عنوان مکالمه بین دو ماشین رفتار کنه و نه دستور داخلی ماشین میزبان... (اساسا کد 255 در متن قابل مشاهده نیست فقط برای این استفاده میشه چه برنامه سرور و چه کلاینت متوجه بشن این یک دستور مکالمه ای بین دو برنامه هست )
بجای Command code ، یک کد فرمان قرار میگیره که بیان میکنه که ماشین مخاطب دقیقا چه انتظاری داره :
بجای هر فرمان معادل عددی اون قرار میگیره ، در این فیلد میتونه کد های مختلفی که از 240 شروع میشه و دقیقا نمیدونم تا کجا ختم میشه (ولی فکر کنم 254 آخرش باشه) قرار بگیره که پر کاربرد ترینشون اینها هستند :
Do>>>253
Don't>>>254
Will>>>251
Won't>>>252
و کد های دیگه که من به لیستشون نمیکنم و شما باید مستندات telnet را مطالعه کنید...

بجای Option Code هم یک کد انتخاب قرار میگیره که بیان گر یک عمل هست برای مثال echo که معادل اون 1 قرار میگیره ، بدیهی همه دستورات کد انتخاب ندارند ،
و در ضمن کد انتخاب از 0 شروع میشه و تا 31 ختم میشه ، به دلیل زیاد بودن تعداد این ها را هم لیست نمیکنم...
در هر صورت بهتون پیشنهاد میکنم قبل از پیاده سازی نه این برنامه بلکه هر برنامه ای که از یکسری پروتکل خاص پیروی میکنند ، مستندات آن پروتکل را مطالعه کنید...