Ich habe eine asp.net-Webseite in c#. Eine Sache, die wir gerne tun würden, ist, Hits auf die Website zu verfolgen, einschließlich ihrer IP-Adresse. Ich habe einige Codes implementiert (Dank SO), aber die protokollierte IP-Adresse scheint immer lokal zu sein, d.h. 192.168.x.x. Ich habe es von verschiedenen Geräten ausprobiert, sogar von meinem Telefon und Version MiFi, nur um sicherzustellen, dass es nicht etwas Seltsames mit dem ISP ist, aber das Protokoll listet immer dieselben 2-3 verschiedenen internen IP-Adressen auf (sie ändern sich etwas im Laufe des Tages).
Hier ist meine Funktion, die die IP-Adresse abruft (nochmals danke für die Beiträge hier auf SO):
geschützte IPAddress GetIp(HttpRequest-Anforderung)
{
string ipString;
if (string.IsNullOrEmpty(request.ServerVariables["HTTP_X_FORWARDED_FOR"]))
ipString = request.ServerVariables["REMOTE_ADDR"];
else
ipString = request.ServerVariables["HTTP_X_FORWARDED_FOR"].Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).FirstOrDefault();
IPAddress-Ergebnis;
wenn (!IPAddress.TryParse(ipString, out result))
Ergebnis = IPAddress.None;
zurückgeben Ergebnis;
}
public void logHit()
{
IPAddress ip = GetIp(Aufforderung);
string sIP = ip.ToString();
}
Ich habe auch dies versucht, was das gleiche Ergebnis liefert:
HttpContext.Current.Request.UserHostAddress;
Wenn ich auf der Clientseite einen Aufruf mache und so etwas wie den Service auf appspot verwende, funktioniert es einwandfrei:
Funktion getip(json) {
//txtIP ist ein Eingabefeld im Formular
document.getElementById("txtIP").value = json.ip;
}
Ich könnte einen Umweg gehen, indem ich diesen appspot-Link aufrufe und ihn analysiere, aber das scheint mir für etwas, das einfach sein sollte, ziemlich umständlich.
Könnte es am IIS auf dem Server liegen? Gibt es eine Art Weiterleitung? Die protokollierten IP-Adressen sind NICHT die des Servers. Das Problem ist, dass ich keinen direkten Zugriff darauf habe, also muss ich mit den Leuten sprechen, die es administrieren, und ihnen gerne etwas Richtung geben, bevor sie einfach anfangen, Dinge zu ändern.
Danke
Ernie