IIS طلب.UserHostAddress العودة IPV6 (::1) ، حتى عندما تم تعطيل IPV6
سؤال
في خصائص القسم من بطاقة الشبكة على نظام التشغيل 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();
}
اذهب إلى ابدأ -> انقر فوق "لوحة التحكم" - > انقر على
View network status and tasks
في لوحة التحكم نافذة -> انقر علىchange adapter settings
فيNetwork and Sharing Center
نافذة.Network Connections
سوف تظهر نافذة.هنا يمكنك انقر على الحقnetwork adapter
(يمكن أن يكون محول لاسلكي أو سلكي محول إيثرنت) التي كنت ترغب في تعطيل IPv6 و فوقProperties
.في
network adapter properties
نافذة, قم بإلغاء تحديدهاInternet Protocol Version 6 (TCP/IPv6)
ثم انقر فوق موافق.نوع
regedit
في موجه الأوامر لإطلاق "محرر التسجيل" ، انتقل إلى موقع التسجيل التالي البند في "محرر التسجيل".HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
إذا كان
DisabledComponents
البند غير متوفر يجب إنشاء في الشكل التالي قبل الذهاب إلى Edit -> New -> DWORD (32-bit) Value ثم قم بتعيين القيمة إلى0xffffffff
(فقط اكتبffffffff
).هذا تعطيل IPv6 الميزات إلا واجهة الاسترجاع IPv6 ، وأخيرا انقرOK
.إعادة تشغيل جهاز الكمبيوتر.