Kurze Antwort: Die beiden sind identisch.
Lange Antwort: Um den Unterschied zwischen den beiden zu bestimmen, Reflektor (oder einen anderen Disassembler) verwenden.
Der Code für die HttpRequest.UserHostAddress
Eigenschaft folgt:
public string UserHostAddress
{
get
{
if (this._wr != null)
{
return this._wr.GetRemoteAddress();
}
return null;
}
}
Beachten Sie, dass es _wr.GetRemoteAddress()
zurückgibt. Die Variable _wr
ist eine Instanz eines Objekts HttpWorkerRequest
. Es gibt verschiedene Klassen, die von HttpWorkerRequest
abgeleitet sind und welche davon verwendet wird, hängt davon ab, ob Sie IIS 6, IIS 7 oder höher und einige andere Faktoren verwenden, aber alle, die Sie in einer Webanwendung verwenden, haben denselben Code für GetRemoteAddress()
nämlich:
public override string GetRemoteAddress()
{
return this.GetServerVariable("REMOTE_ADDR");
}
Wie Sie sehen können, gibt GetRemoteAddress()
einfach den Server-Variable REMOTE_ADDR
.
Soweit was zu verwenden, würde ich vorschlagen, die UserHostAddress
Eigenschaft, da ist nicht auf "Magic Strings."
Glücklich Programmierung
diese werden nicht die gleichen Ergebnisse, wenn der Benutzer einen Proxy-Server hat, wird es? Methode 2 erhält die Adresse des Proxys anstelle des Computers des Benutzers. Ich werde nicht Methode 2 über Methode 1 verwenden. – lawphotog
müssen nur wissen, wer das liest, das verursacht Probleme. also benutze ich nicht mehr. – MonsterMMORPG
@MonsterMMORPG, welche der Methoden verursacht Probleme, und was sind die Probleme? –