نمایش نتایج 1 تا 11 از 11

نام تاپیک: بدست آوردن لیست IP

  1. #1
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    ایران - فارس
    پست
    150

    بدست آوردن لیست IP

    سلام دوستان
    من چطوری میتونم لیست کسایی که توی یه رنج آی پی هستند رو توی یک ComboBox قرار بدم ؟
    نمیخوام از dll و توابع ویندوز استفاده کنم
    ممنون میشم کمک کنید

  2. #2
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: بدست آوردن لیست IP

    سلام
    نمیدونم راه بهتری هست یا نه ولی این کلاس یه رنج 255 تایی از ipBase ای که بهش داده میشه رو پینگ میکنه و چون من برای شبکه LANمون ازش استفاده میکنم، میدونم که هر پینگ بیشتر از 100 ms وقت نمیبره و اگه تو این مدت پینگ نشه یعنی یا هاست(node متصل به LAN) نیست یا deactive هست؛ شما میتونین برای کاربرد خودتون بیشتر یا کمترش کنین، shouldResolveNames هم برای اینه که اطلاعات کامل در مورد هاست اضافه بشه یا فقط IP کافیه:
    class IPFetch
    {
    static CountdownEvent countdown;
    private bool resolveNames = true;
    public static bool Completed = false;
    public static List<string> Result;

    public static void StartFetch(ipBase = "192.168.1.",
    bool shouldResolveNames = true,
    int replyTime = 100)
    {
    countdown = new CountdownEvent(1);
    Completed = false;
    Result = new List<string>();
    resolveNames = shouldResolveNames;
    Stopwatch sw = new Stopwatch();
    sw.Start();
    for (int i = 1; i < 255; i++)
    {
    string ip = ipBase + i.ToString();

    Ping p = new Ping();
    p.PingCompleted +=
    new PingCompletedEventHandler(p_PingCompleted);
    countdown.AddCount();
    p.SendAsync(ip, replyTime, ip);
    }
    countdown.Signal();
    countdown.Wait();
    sw.Stop();
    TimeSpan span = new TimeSpan(sw.ElapsedTicks);
    Completed = true;
    // Fetch time = sw.ElapsedMilliseconds
    }

    private static void p_PingCompleted(object sender, PingCompletedEventArgs e)
    {
    string ip = (string)e.UserState;
    if (e.Reply != null && e.Reply.Status == IPStatus.Success)
    {
    if (resolveNames)
    {
    string name;
    try
    {
    IPHostEntry hostEntry = Dns.GetHostEntry(ip);
    name = hostEntry.HostName;
    }
    catch (SocketException ex)
    {
    name = ip;
    }
    Result.Add(String.Format("{0} ({1}) is up: ({2} ms)",
    ip,
    name,
    e.Reply.RoundtripTime));
    }
    else
    Result.Add(ip);
    }
    else if (e.Reply == null)
    Result.Add("Pinging [" + ip + "] failed. (Null Reply object?)");
    countdown.Signal();
    }
    }

    نحوه استفاده اش هم که مشخصه ولی یه توضیح بدم که اگه replyTime رو دست نزنین، با فراخوانی StartFetch بعد کمتر از نیم ثانیه Completed مقدارش true میشه و شما می تونید Result رو استفاده کنید؛ ولی چون ممکنه پکت لاست شبکه بالا باشه و شما مقدار replyTimeرو عوض کنید، در اینحالت بهتره بعد فراخوانی StartFetch منتظر true شدن Completed بشین و بعدش Result رو به combo تون انتساب بدین، مثلاً اینطوری (همزمانی، خروج از حلقه بینهایت، قفل شدن فرم و ... دیگه با خودتون) :
    IPFetch.StartFetch("172.16.99.", false, 1200);
    while(!IPFetch.Completed)
    Thread.Sleep(100);
    comboBox1.Items.Add(IPFetch.Result);


    =============
    اینجا رو هم می تونید ببینید، از IPNetwork استفاده کرده: List IP all addresses in a subnet

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    ایران - فارس
    پست
    150

    نقل قول: بدست آوردن لیست IP

    دوستان اگه کسی پیشنهادی یا راه دیگه ای داره ممنون میشم ذکر کنه .
    فقط گفتم شاید یکم بیشتر توضیخ بدم بهتر باشه . اینو واسه نرم افزار چت که دارم مینویسم میخوام . میخوام موقع لود شدن IP هرکی که نرم افزارش باز هس رو توی یه Combobox اضافه کنه
    با تشکر

  4. #4
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: بدست آوردن لیست IP

    نقل قول نوشته شده توسط saman_h مشاهده تاپیک
    اساتییییییییییییییییییییی یید کجان پس ؟!
    اساتید خیلی وقته نیستن، باید به همین ماها قناعت کنی!
    عنوان تاپیک با چیزی که این اواخر مطرح کردین از زمین تا آسمون فرق میکنه! :
    میخوام موقع لود شدن IP هرکی که نرم افزارش باز هس رو توی یه Combobox اضافه کنه
    شما کارهایی که تا اینجا انجام دادین رو بگین، تا ما (فعلاً که فقط من!) هم بهتر راهنمایی کنیم؛ برای اینکار کافیه تو برنامه کلاینت تون یه متد Alive بذارین که هروقت برنامه سمت هرکی run شد، به سرور شما اعلام کنه و شما هم به لیست تون اضافه اش کنید، کلاً فکر نکنم سمت سرور و کلاینت بیشتر از 5 خط کد بشه ولی باید یه حرکاتی مبنی بر برنامه نویس بودن شما در این تاپیک رویت بشه تا من بتونم ادامه بدم، مگه اینکه اساتید به دادتون برسن و شما رو از دست بنده نجات بدن ...

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    ایران - فارس
    پست
    150

    نقل قول: بدست آوردن لیست IP

    نقل قول نوشته شده توسط Saeed_m_Farid مشاهده تاپیک
    اساتید خیلی وقته نیستن، باید به همین ماها قناعت کنی!
    عنوان تاپیک با چیزی که این اواخر مطرح کردین از زمین تا آسمون فرق میکنه! : شما کارهایی که تا اینجا انجام دادین رو بگین، تا ما (فعلاً که فقط من!) هم بهتر راهنمایی کنیم؛ برای اینکار کافیه تو برنامه کلاینت تون یه متد Alive بذارین که هروقت برنامه سمت هرکی run شد، به سرور شما اعلام کنه و شما هم به لیست تون اضافه اش کنید، کلاً فکر نکنم سمت سرور و کلاینت بیشتر از 5 خط کد بشه ولی باید یه حرکاتی مبنی بر برنامه نویس بودن شما در این تاپیک رویت بشه تا من بتونم ادامه بدم، مگه اینکه اساتید به دادتون برسن و شما رو از دست بنده نجات بدن ...
    والا کارهای زیادی که انجام دادم !!! برنامم تمومه حدودا فقط ریزکاری هاش مونده . میخواستم کاری کنم که هرکی برنامه رو اجرا میکنه توی لیست بقیه اضافه بشه که راحت بتونن به همدیگه کانکت بشن . حالا نمیدونم باید چی بگم که مبنی بر برنامه نویس بودنم باشه !! درضمن اضافه کنم که من برنامه Client / Server رو جداگانه نساختم !! یعنی یدونه برنامه ساختم که هم Client هست و هم Server
    ممنون میشم راهنمایی کنید ...
    با تشکر

  6. #6
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: بدست آوردن لیست IP

    نقل قول نوشته شده توسط saman_h مشاهده تاپیک
    حالا نمیدونم باید چی بگم که مبنی بر برنامه نویس بودنم باشه !!
    «دو صد گفته چون نیم کردار نیست»
    کافیه قسمتی از کد رو که بین کلاینت و سرور تعامل دارید(حالا یک برنامه یا صدتا؛ مهم قسمت ارتباطی هست)، اینجا بذارین تا ما تکمیلش کنیم، بعنوان مثال تو رویداد OnAccept فلان کد رو نوشتم و در OnDataReceived این رو و ... حالا مشکلم فلان چیز هست؛ بدون یک قطعه کد چه سولوشنی میشه داد؟ منِ پاسخ دهنده، چه بدونم مکانیزم پردازش داده ها سمت سرور شما چی هست یا چطوری سمت کلاینت درخواست هاتون رو به اطلاع سرویس دهنده میرسونید؟ و ...
    ضمناً بنده راه حل رو قدم به قدم خدمت تون عرض کردم، شما بگو کجاش مشکل داری! "یعنی کسی راه حل دیگه ای نداره ؟!" دردی دوا نمیکنه...

  7. #7
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    ایران - فارس
    پست
    150

    نقل قول: بدست آوردن لیست IP

    دارم یه برنامه چت مینویسم با استفاده از Socket و پروتوکل TCP/IP
    کارهای که انام دادم اینه که برنامه سمت سرور و کلاینتم رو تلفیق کردم پس در نتیجه یدونه برنامه بیشتر ندارم ... ! من این برنامه رو روی دوتا کامپیوتر اجرا میکنم . خوب حالا کافیه با یکی از برنامه ها به اونیکی دیگه وصل بشم . حالا چطوری ؟! اینطور که IP هر دو سیستم رو میدونم . اونوقت IP اونیکی سیستم رو میزنم و کانکت میشم و ...
    حالا میخوام کاری کنم بجای اینکه خودم این کارو به صورت دستی انجام بدم و آی پی طرف مقابل رو وارد کنم . به محض اجرای برنامه IP و یا سام کامپیوتر اون فرد که برنامه رو اجرا کرده توی یه لیست ( حالا کامبوباکس ، لیست باکس و ... ) اضافه بشه . یعنی میخوام قبل از کانکت شدن این اتفاق بیفته . امیدوارم که کاملا منظورم رو رسونده باشم
    با ابن دستور به برنامه کانکت میشم :

    sock.Connect(IPAddress.Parse(ServerAddress_txt.Text), 8);

    و با این دستور از طرف سرور ارتباط رو قبول میکنم :

    TcpListener server = newTcpListener(ipAddress,port);
    server.Start();
    sock = server.AcceptSocket();




    بعدش هم که میشه ارسال اطلاعات و ...

    هنوز کدی واسه اون بخشی که سوال ازش پرسیدم ننوشتم . راستش از کد شما زیاد سر در نیاوردم . مشکلمم اینجاس زیاد نیس دارم با سی شارپ کار میکنمو الانم یهو مجبورا رفتم سراق Socket Programming ، ممنون میشم یجوری بگید یا یه کد ساده بگید که درست متوجه بشم و سر در بیارم
    بازم ممنون

  8. #8
    کاربر دائمی آواتار Saeed_m_Farid
    تاریخ عضویت
    تیر 1386
    محل زندگی
    فضای تهی میان دیوارها
    سن
    44
    پست
    1,046

    نقل قول: بدست آوردن لیست IP

    نقل قول نوشته شده توسط saman_h مشاهده تاپیک

    1. من این برنامه رو روی دوتا کامپیوتر اجرا میکنم
    2. امیدوارم که کاملا منظورم رو رسونده باشم
    1. قسمت P2P based chat تو تاپیک جامع چت! رو مطالعه کنید.
    2. از همون اول هم منظورتون رسیده بود، ولی میخواستم خودتون هم منظور خودتون رو بگیرین :
      والا کارهای زیادی که انجام دادم !!! برنامم تمومه حدودا فقط ریزکاری هاش مونده .
      بعدش :
      با ابن دستور به برنامه کانکت میشم : ... و با این دستور از طرف سرور ارتباط رو قبول میکنم : ... بعدش هم که میشه ارسال اطلاعات و ...
      نمیخوام بی احترامی کنم ولی "ما کارمون اینه و از این راه گذران زندگی می کنیم"، گذشته از این: ما هم قبلاً تو همون جاهایی بودیم که الان شما هستید ...

    پس
    بپذیرید و بیان کنید که پرسش شما، پرسشی دانشجویی است.
    منبع

  9. #9
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    ایران - فارس
    پست
    150

    نقل قول: بدست آوردن لیست IP

    نقل قول نوشته شده توسط Saeed_m_Farid مشاهده تاپیک
    1. قسمت P2P based chat تو تاپیک جامع چت! رو مطالعه کنید.
    2. از همون اول هم منظورتون رسیده بود، ولی میخواستم خودتون هم منظور خودتون رو بگیرین : بعدش : نمیخوام بی احترامی کنم ولی "ما کارمون اینه و از این راه گذران زندگی می کنیم"، گذشته از این: ما هم قبلاً تو همون جاهایی بودیم که الان شما هستید ...
    پس منبع
    دستتون درد نکنه آقا سعید خوب شرمندم کردیییییییییییییییید ... !!! توقع نداشتم ... !!! اگه دقت میکردید میدیدید که گفتم تازه دارم با C#‎‎ کار میکنم . واسه همینم بود که گفتم یه چیز قابل فهم تر میخوام که متوجش بشم نه اینکه بخوام چیزی رو کپی پیست کنم . شاید واسه شما این کارا آسون باشه اما من تا همینجاشم که پیش اومدم خیلی کارکردم و مطلب و پی دی اف گرفتم خوندم تا یچیزایی سر در بیارم . از آماده خوری هم شدیدا بدم میاد آدمی هم نیستم که بخوام دیگران واسم کارامو انجام بدن اما از پرسیدن و یاد گرفتن هم هیچوقت دریغ نمیکنم . اگه بازم بیشتر دقت میکردید میدیدید که نوشتم نمیخوام از توابع آماده ویندوز یا Dll ها استفاده کنم ... اینا همش دلیل هایی هستن که میتونه نشون بده دوست دارم یاد بگیرم نه اینکه واسه رفع تکلیفی بخوام کاری انجام بدم
    بازهم ممنون ... ولی ...
    آخرین ویرایش به وسیله saman_h : یک شنبه 28 خرداد 1391 در 23:40 عصر

  10. #10
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    ایران - فارس
    پست
    150

    نقل قول: بدست آوردن لیست IP

    بهرحال بازهم ممنون میشم یکم واسم توضیح بدید که متوجه بشم و بتونم این کارو انجام بدم
    بازم میگم من مثل شما ها حرفه ای نیستم ، اما دوست دارم یاد بگیرم ، پس یجوری بهم بگید که متوجه بشم ... چون زیاد سر در نمیارم
    بازم پیشاپیش ممنون
    آخرین ویرایش به وسیله saman_h : سه شنبه 30 خرداد 1391 در 01:05 صبح

  11. #11
    کاربر دائمی
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    ایران - فارس
    پست
    150

    نقل قول: بدست آوردن لیست IP

    یه توضیح کوچولو : میخوام این اتفاق حتی قبل از کانکت شدن انجام بشه ... !!! یعنی اینکه به محض اجرای برنامه اونایی که برنامشون اجراس توی لیست برنامه اضافه بشن ! پس هنوز ارتباطی برقرار نشده .. اینو مد نظر بگیرید
    اگه اشتباه نکنم باید یجوری از MultiCast یا BroadCast استفاده کنم . به این صورت که تو رنج ip خودم از 0 تا 254 رو پاکت بفرستم هرکی جواب داد اونو اضافه کنم . اما مساله اینجاس تو این حالت هرکی تو شبکه باشه جواب میده نه هرکی برنامش بازه !! ممنون میشم کسی بتونه راهنماییم کنه و یه کد آسون و قابل فهم بگه و واسم توضیحش بده چون میخوام یاد بگیرممممم نه اینکه فقط کپی کنم
    با تشکر

تاپیک های مشابه

  1. بدست آوردن لیست سرور های موجود در شبکه
    نوشته شده توسط محسن بابائی در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: سه شنبه 04 اردیبهشت 1386, 14:57 عصر
  2. بدست آوردن لیست پرینترهای نصب شده !
    نوشته شده توسط hadi2345 در بخش VB.NET
    پاسخ: 1
    آخرین پست: دوشنبه 04 دی 1385, 19:25 عصر
  3. بدست آوردن لیست فیلدهای یک جدول
    نوشته شده توسط Future در بخش SQL Server
    پاسخ: 8
    آخرین پست: دوشنبه 20 شهریور 1385, 01:12 صبح
  4. بدست آوردن لیست کامپیوترهای فعال در شبکه
    نوشته شده توسط Morteza Manafpour در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: جمعه 08 مهر 1384, 11:21 صبح
  5. بدست آوردن لیست دیتابیس های sql
    نوشته شده توسط ama55555 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: شنبه 12 شهریور 1384, 23:42 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •