Mendapatkan alamat IP pengguna yang benar dalam aplikasi ASP.NET
di ASP.NET, secara langsung menggunakan sering menghasilkan alamat IP pelayan perantara (seperti proksi atau pengimbang beban), bukan IP pelanggan sebenar. Ini bermasalah untuk aplikasi yang memerlukan alamat IP yang tepat untuk keselamatan atau analisis. Request.UserHostAddress
. Pembolehubah ini, apabila hadir, mengandungi alamat IP klien asal, terutamanya dalam senario dengan proksi atau pengimbang beban. Walau bagaimanapun, ia mungkin menyenaraikan pelbagai IPS. HTTP_X_FORWARDED_FOR
c#
<code class="language-csharp">protected string GetClientIpAddress() { var context = System.Web.HttpContext.Current; string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (!string.IsNullOrWhiteSpace(ipAddress)) { return ipAddress.Split(',')[0].Trim(); } return context.Request.ServerVariables["REMOTE_ADDR"]; }</code>
Fungsi -fungsi ini mengutamakan
<code class="language-vb.net">Public Shared Function GetClientIpAddress() As String Dim context As System.Web.HttpContext = System.Web.HttpContext.Current Dim ipAddress As String = context.Request.ServerVariables("HTTP_X_FORWARDED_FOR") If Not String.IsNullOrWhiteSpace(ipAddress) Then Return ipAddress.Split(","c)(0).Trim() End If Return context.Request.ServerVariables("REMOTE_ADDR") End Function</code>
. Pendekatan ini meningkatkan ketepatan pengambilan alamat IP dalam aplikasi ASP.NET anda, yang membawa kepada pengenalan pengguna yang lebih tepat dan kawalan berasaskan IP yang lebih baik. HTTP_X_FORWARDED_FOR
Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan semula alamat IP sebenar pengguna di ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!