Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk mendapatkan alamat IP pelanggan yang benar di ASP.NET?

Bagaimana untuk mendapatkan alamat IP pelanggan yang benar di ASP.NET?

Susan Sarandon
Lepaskan: 2025-01-30 09:56:10
asal
430 orang telah melayarinya

How to Get the True Client IP Address in ASP.NET?

Pengambilan alamat IP klien yang tepat dalam aplikasi ASP.NET

Menentukan alamat IP sebenar pengguna adalah penting untuk banyak aplikasi ASP.NET, termasuk pengenalan pengguna dan pengurusan lalu lintas. Walaupun

menyediakan alamat IP, ia sering mewakili pelayan proksi atau pengimbang beban, bukan peranti pengguna akhir. Request.UserHostAddress

memanfaatkan http_x_forwarded_for

Penyelesaiannya terletak pada menggunakan pembolehubah pelayan

. Pembolehubah ini menyimpan alamat IP klien asal apabila meminta pelayan proksi melintasi atau peranti rangkaian. Mengutamakan HTTP_X_FORWARDED_FOR memastikan pengambilan alamat IP yang tepat. HTTP_X_FORWARDED_FOR

c# dan contoh kod vb.net

coretan kod berikut menunjukkan cara melaksanakan penyelesaian ini dalam kedua -dua C# dan vb.net:

<code class="language-csharp">protected string GetIPAddress()
{
    System.Web.HttpContext context = System.Web.HttpContext.Current;
    string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

    if (!string.IsNullOrEmpty(ipAddress))
    {
        string[] addresses = ipAddress.Split(',');
        if (addresses.Length > 0)
        {
            return addresses[0].Trim(); //Added Trim to remove whitespace
        }
    }

    return context.Request.ServerVariables["REMOTE_ADDR"];
}</code>
Salin selepas log masuk
<code class="language-vb.net">Public Shared Function GetIPAddress() 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.IsNullOrEmpty(ipAddress) Then
        Dim addresses As String() = ipAddress.Split(","c)
        If addresses.Length > 0 Then
            Return addresses(0).Trim() 'Added Trim to remove whitespace
        End If
    End If

    Return context.Request.ServerVariables("REMOTE_ADDR")
End Function</code>
Salin selepas log masuk
Fungsi -fungsi ini pertama menyemak

. Jika hadir, ia mengekstrak alamat IP pertama dari senarai yang dipisahkan koma. Jika tidak dijumpai, ia kembali kepada HTTP_X_FORWARDED_FOR. Fungsi REMOTE_ADDR telah ditambah untuk menghapuskan mana -mana ruang kecil terkemuka atau trailing dari rentetan alamat IP untuk kebolehpercayaan yang lebih baik. Kaedah ini dengan ketara meningkatkan ketepatan mendapatkan alamat IP klien yang benar, memperkuat keselamatan dan fungsi aplikasi. Trim()

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan alamat IP pelanggan yang benar di ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan