Estimado sanfermin, la ip real detrás del proxy la sacás con <%= Request.ServerVariables("HTTP_X_FORWARDED_FOR") %>.
Con respecto a tu segunda pregunta depende de la cantidad de IP que quieras bloquear o permitir el acceso, pero si son pocas con un simple if o select case alcanzaría manipulándolas a mano o leyéndolas de un xml, pero si son muchas evidentemente te convendría usar una base de datos.
Si explicaras un poco mejor qué es lo que intentás hacer a lo mejor te podríamos ayudar mejor.
Espero que esto te haya sido útil.