Cara mendapatkan IP pengunjung pada mesin loadbalancing menggunakan asp.net

Kami memiliki dua server penyeimbang beban. Karena kami telah menghosting aplikasi asp.net 3.5 saat ini kami menggunakan permintaan alamat host pengguna untuk mendapatkan ip pengunjung tetapi memberikan ip penyeimbang beban, bukan ip asli. Adakah yang bisa punya kode untuk ini.


person Jalpesh Vadgama    schedule 25.03.2010    source sumber


Jawaban (3)


Masalahnya lebih berkaitan dengan fakta bahwa "penyeimbang beban" bertindak sebagai proxy. Jenis penyeimbang beban apa yang Anda gunakan? Saya tahu dengan server Microsoft ISA ada pengaturan untuk meneruskan alamat IP pengguna asli ke server web.

Jika tidak, Anda harus menulis halaman untuk membuang variabel server dan melihat apakah ada variabel server tambahan yang ditambahkan yang memberi Anda alamat IP klien sebenarnya.

person David McEwing    schedule 25.03.2010
comment
Bagaimana saya bisa melakukannya dengan halaman? Kami telah memeriksa semua variabel tetapi ip asli tidak ada. - person Jalpesh Vadgama; 31.03.2010
comment
Berikut halaman ASP.NET sederhana yang membuang semua variabel server: weblogs.asp.net/owscott/viewing-all-server-variables-for-a-site tetapi Anda juga dapat mengaktifkan penelusuran di ASP.NET untuk menampilkan banyak hal seperti itu di halaman mana pun msdn.microsoft.com/en-us/library/94c55d08.aspx - person Matthew Lock; 24.11.2014

Saya pikir Anda harus mencari tidak hanya HTTP_X_FORWARDED_FOR, tetapi untuk semua itu, tergantung apa yang digunakan saldo pemuatan Anda

Context.Request.ServerVariables[CheckAllBelowList]

"HTTP_X_COMING_FROM",
"HTTP_X_FORWARDED_FOR",
"HTTP_X_FORWARDED",
"HTTP_VIA",
"HTTP_COMING_FROM",
"HTTP_FORWARDED_FOR",
"HTTP_FORWARDED",
"HTTP_FROM",
"HTTP_PROXY_CONNECTION",
"HTTP_CLIENT_IP",
"CLIENT_IP",
"FORWARDED",

Pengembalian salah satunya, adalah Ip aktual klien Anda, kecuali jika proxy lain, saya juga perlu mempelajari bagaimana seseorang bisa mendapatkan ini, untuk menemukan pengguna yang berada di belakang 2-3 proxy...

Jika Anda tahu yang lain, tolong beri tahu saya.

person Aristos    schedule 25.03.2010

tergantung pada server penyeimbang beban, IP klien dapat/harus ditulis ke:

Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

Namun berhati-hatilah jika pengguna juga berada di belakang proxy, nilainya mungkin adalah klien asli proxy, bukan klien penyeimbang beban (yang dalam hal ini akan menjadi IP proxy). Saya tidak yakin perilaku apa yang "normal".

Semoga itu bisa membantu, Alex

person Alex Duggleby    schedule 25.03.2010