Comment faire pour Obtenir l'Adresse IP?
Je veux obtenir l'adresse ip de celui qui est inscrit dans mon site. Comment faire cela dans le RÉSEAU. J'ai utilisé le code suivant, mais, il n'est pas la bonne Adresse IP
string ipaddress = Request.UserHostAddress;
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser cette méthode pour obtenir l'adresse IP de la machine cliente.
X-Forwarded-For
peut contenir plusieurs adresses IP.Dans une situation où vous utilisez l'adresse IP de sécurité vous devez être conscient de votre infrastructure.
Si vous utilisez un proxy entre votre serveur web et vos clients qui définit l'en-tête, vous devriez être en mesure de faire confiance à la dernière adresse. Ensuite, vous utilisez le code comme Muhammed proposé avec une mise à jour pour avoir toujours la dernière adresse IP de l'en-tête (Voir code ci-dessous)
Si vous n'utilisez pas de proxy, méfiez-vous que le X-Forwarded-For-tête est très facile d'usurper l'identité. Je vous suggère de les ignorer, à moins que vous ayez une bonne raison de ne pas.
J'ai mis à jour Muhammad Akhtar du code comme suit pour vous permettre de choisir:
Ce Article de Wikipedia explique les risques de manière plus approfondie.
HTTP_X_FORWARDED_FOR devrait être utilisé, MAIS il peut retourner plusieurs adresses IP séparées par une virgule. Voir cette page.
Donc, vous devriez toujours vérifier. Personnellement, j'utilise la fonction Split.
ip = (HttpContext.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? "").Split(',').Last().Trim();
MVC 6, vous pouvez récupérer l'adresse IP de cette façon:
Si un client se connecte à travers un processus transparent non-proxy anonyme, vous pouvez obtenir leur adresse de:
qui peut retourner la valeur null ou "inconnu" si l'IP ne peut pas être obtenu de cette façon.
Request.ServerVariables["REMOTE_ADDR"]
doit être le même queRequest.UserHostAddress
, soit de ce qui peut être utilisé si la demande n'est pas à partir d'un non-proxy anonyme.Toutefois, si la demande émane d'un proxy anonyme, alors il n'est pas possible d'obtenir directement l'IP du client. C'est pourquoi ils appellent ces procurations anonyme.
le
variable - je suppose que vous voulez utiliser à la place de0
dans la ligne suivante