Notatki dla .NET w języku programowania C#

Asp.net IP client

Często będziesz chciał znać adres IP osoby odwiedzającej twoją stronę. Podczas gdy ASP.NET ma kilka sposobów na zrobienie tego, jednym z najlepszych sposobów, jakie widzieliśmy, jest użycie „HTTP_X_FORWARDED_FOR” z kolekcji ServerVariables.

Dlatego...

Czasami twoi goście stoją za serwerem proxy lub routerem, a standardowy Request.UserHostAddress przechwytuje tylko adres IP serwera proxy lub routera. W takim przypadku adres IP użytkownika jest następnie zapisywany w zmiennej serwera („HTTP_X_FORWARDED_FOR”).

Dlatego chcemy najpierw sprawdzić „HTTP_X_FORWARDED_FOR”, a jeśli jest pusty, po prostu zwracamy zmienne serwera („REMOTE_ADDR”).

Chociaż ta metoda nie jest niezawodna, może prowadzić do lepszych wyników. Poniżej znajduje się kod ASP.NET w VB.NET, zaczerpnięty z bloga Jamesa Crowleya „Gotcha: HTTP_X_FORWARDED_FOR zwraca wiele adresów IP”

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];
        }
    }
 
    return context.Request.ServerVariables["REMOTE_ADDR"];
}
Kategoria: 

docker toolbox

docker-machine ls
 
docker-machine ip default
 
docker run -d -p 8000:80 nginx
 
 
docker-machine stop default
docker-machine start default
 
 
docker build  -t start-docker .
 
 docker run -d -p 8001:80 start-docker
Kategoria: 

Strony

Subskrybuj Notatki dla .NET w języku programowania C#