IIS طلب.UserHostAddress العودة IPV6 (::1) ، حتى عندما تم تعطيل IPV6

StackOverflow https://stackoverflow.com/questions/1932843

  •  20-09-2019
  •  | 
  •  

سؤال

في خصائص القسم من بطاقة الشبكة على نظام التشغيل windows server 2008, يجب تعطيل IPV6 ، ولم يتبق سوى IPV4 تمكين.

ومع ذلك في ASP.NET طلب.UserHostAddress يعود '::1', عنوان IPV6.

أي شخص لديه أي فكرة عن كيفية العودة إلى IPV4 ؟

هل كانت مفيدة؟

المحلول

إذا كنت متصلا المضيف المحلي (:: 1 / 127.0.0.1)، كنت لا تستخدم بطاقة شبكة الخادم لديه، وإنما مثل بطاقة الظاهرية التي النوافذ لديها. لا أعتقد أن هناك على أية حال لتكوين بطاقة الاسترجاع وإزالة الإصدار IPv6 من ذلك، وليس دون إزالة الدعم عن النظام كله، ولكن في Win2008 وربما كنت لا تستطيع أن تفعل ذلك بعد الآن.

ويمكنك التحقق من بطاقة الجسدية لا يتم استخدامها عن طريق تشغيل شبكة تيلس علبة اسر. في ويندوز، يمكنك أبدا شم حركة المرور التي يمشي بطاقة الاسترجاع الافتراضية.

وقال ذلك، يجب عليك الوصول إليها من جهاز آخر (من خلال الاتصال الذي سيتم مرورا بطاقة الجسدية)، يجب أن تشاهد عنوان IPv4 الذي عاد من Request.UserHostAddress

نصائح أخرى

و4 شباب من رولا الموقع يحتوي على حل هنا ، وهو ما قد استخدمت في تطبيقي .

تحديث:

وفقط في حالة هذا الرابط يذهب الميت، وهنا الرمز بناء على هذا الرابط:

public string GetIpAddress()
{
    string ipAddressString = HttpContext.Current.Request.UserHostAddress;

    if (ipAddressString == null)
        return null;

    IPAddress ipAddress;
    IPAddress.TryParse(ipAddressString, out ipAddress);

    // If we got an IPV6 address, then we need to ask the network for the IPV4 address 
    // This usually only happens when the browser is on the same machine as the server.
    if (ipAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
    {
        ipAddress = System.Net.Dns.GetHostEntry(ipAddress).AddressList
            .First(x => x.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
    }

    return ipAddress.ToString();
}
  1. اذهب إلى ابدأ -> انقر فوق "لوحة التحكم" - > انقر على View network status and tasks في لوحة التحكم نافذة -> انقر على change adapter settings في Network and Sharing Center نافذة.

  2. Network Connections سوف تظهر نافذة.هنا يمكنك انقر على الحق network adapter (يمكن أن يكون محول لاسلكي أو سلكي محول إيثرنت) التي كنت ترغب في تعطيل IPv6 و فوق Properties.

  3. في network adapter properties نافذة, قم بإلغاء تحديدها Internet Protocol Version 6 (TCP/IPv6) ثم انقر فوق موافق.

  4. نوع regedit في موجه الأوامر لإطلاق "محرر التسجيل" ، انتقل إلى موقع التسجيل التالي البند في "محرر التسجيل".

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
    
  5. إذا كان DisabledComponents البند غير متوفر يجب إنشاء في الشكل التالي قبل الذهاب إلى Edit -> New -> DWORD (32-bit) Value ثم قم بتعيين القيمة إلى 0xffffffff (فقط اكتب ffffffff).هذا تعطيل IPv6 الميزات إلا واجهة الاسترجاع IPv6 ، وأخيرا انقر OK.

  6. إعادة تشغيل جهاز الكمبيوتر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top