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