+1 امتیاز

سلام

در لینک زیر آموزش به دست آوردن IP یک سیستم Local گذاشته شده 

http://www.w3-farsi.com/%D8%A8%D9%87-%D8%AF%D8%B3%D8%AA-%D8%A2%D9%88%D8%B1%D8%AF%D9%86-ip-%DB%8C%DA%A9-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-local/

قبل از نشان دادن آی پی یه سری کد دیگه نمایش میده ولی من میخوام فقط آی پی رو تو تکس باکس نشون بده

و با کد زیر این کار رو کردم

        IPHostEntry IPHostEntry = Dns.GetHostEntry(Dns.GetHostName());

        foreach (IPAddress IPAddress in IPHostEntry.AddressList)
        
            if (IPAddress.AddressFamily.ToString() == "InterNetwork")
            {
                LocalIP = IPAddress.ToString();
            }
        txt.Text =  LocalIP;

تو کد بالا به جای اینکه آی پی 192.168.0.1 رو نمایش بده آی پی 192.168.187.1 رو نمایش میده چطوری مشکل رو حل کنم؟

بسته شده
.....
توسط (1,019 امتیاز) 1 23 74

3 پاسخ

0 امتیاز
 
بهترین پاسخ
کدی که خودم نوشتم رو بر روی یه کامپیوتر دیگه اجرا کردم و درست جواب داد مشکل از این بود که من بر روی سیستمم 2 تا کارت شبکه مجازی داشتم به خاطر همین آی پی رو اشتباه نمایش می داد.

فقط یه کمک می خواستم و اینکه من 2 رقم آخر آی پی رو نیاز دارم XXX.XXX.X.XAA

چه طوری 2 رقم آخر رو بدست بیارم؟
+4 امتیاز

سلام

با این کد میتونی آی پی رو بدست بیاری بشرطی که نام سرور رو خودت بنویسی :

public static bool IsLocalIpAddress(string host)
        {
            try
            { // get host IP addresses
                IPAddress[] hostIPs = Dns.GetHostAddresses(host);
                // get local IP addresses
                IPAddress[] localIPs = Dns.GetHostAddresses(Dns.GetHostName());

                // test if any host IP equals to any local IP or to localhost
                foreach (IPAddress hostIP in hostIPs)
                {
                    // is localhost
                    if (IPAddress.IsLoopback(hostIP)) return true;
                    // is local address
                    foreach (IPAddress localIP in localIPs)
                    {
                        if (hostIP.Equals(localIP)) return true;
                    }
                }
            }
            catch { }
            return false;
        }

برای تست هم میتونی این آدرس ها رو بهش بدی تا جوابش رو ببینی.:

IsLocalIpAddress("localhost");        // true (loopback name)
IsLocalIpAddress("127.0.0.1");        // true (loopback IP)
IsLocalIpAddress("MyNotebook");       // true (my computer name)
IsLocalIpAddress("192.168.0.1");      // true (my IP)
IsLocalIpAddress("NonExistingName");  // false (non existing computer name)
IsLocalIpAddress("99.0.0.1");         // false (non existing IP in my net)

 

ممنون از بابت پاسختون
ویرایش شده توسط
توسط (1,019 امتیاز) 1 23 74
0 امتیاز
با استفاده از آرایه درست شد.
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...