Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh mendapatkan semula alamat IP sebenar pengguna di ASP.NET?

Bagaimanakah saya boleh mendapatkan semula alamat IP sebenar pengguna di ASP.NET?

DDD
DDDasal
2025-01-30 09:51:11586semak imbas

How Can I Reliably Retrieve a User's Real IP Address in ASP.NET?

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

Kaedah yang lebih dipercayai melibatkan memeriksa pembolehubah pelayan

. 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

coretan kod berikut menunjukkan cara mengekstrak alamat IP pengguna dengan berkesan:

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>
vb.net

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>
, mengekstrak alamat IP pertama. Jika pemboleh ubah ini hilang, mereka kembali ke

. 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn