Jak pobrać adres ip od klienta?

0

Witam, Jak mogę pobrać adres ip od klienta?
Chcę zrobić aplikację która pobiera dane użytkownika z formularza, a później wysyła widok z imieniem, nazwiskiem i adresem ip.
Ktoś mógłby pomóc?

0

Takie rozwiązanie może być?
dodam że ip jest ciągle ::1, ale na overflowie napisane jest że to jest związane chyba coś z localhostem?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Zadanie1CEZ.Models;
using static Microsoft.AspNetCore.Hosting.Internal.HostingApplication;

namespace Zadanie1CEZ.Controllers
{

    public class FizzBuzzController : Controller
    {
        [HttpGet]
        public IActionResult Index()
        {
            
            return View();
        }

        public string ip()
        {
            var remoteIpAddress = Request.HttpContext.Connection.RemoteIpAddress.ToString();
            return remoteIpAddress;
        }
        [HttpPost]

        public string Index(FizzBuzzRequestDTO request)
        {
            var service = new FizzBuzzService();
            FizzBuzzResoultDTO resoult = service.Validate(request);
            return resoult.Tekst+" || Twoje IP to: "+ip();
        }
        
    }
}
0

A request wysyłasz z localhosta?

2

Czyli wysyłasz request z localhosta i dostajesz localhosta. To gdzie jest błąd?

0

To nie jest związane z localhostem, ::1 to jest adres IP localhosta.

Żyjemy w przyszłości, to jest adres IPv6.

0

Czyli pobiera mi dobrze? Ja daję po prostu debugowanie w Visual Studio, odpala mi się w przeglądarce i tyle. W url jest localhost:jakiś port

0

Ja mam u siebie taki kod i pobiera dobrze. A upewniłem się udostępniając usługę na zewnątrz w trybie debug. I Api testerem online robiłem zapytania.

private readonly IHttpContextAccessor _httpContextAccessor;
public CheckoutController(IHttpContextAccessor httpContextAccessor)
{            
      _httpContextAccessor = httpContextAccessor;
}
public async Task<IActionResult> Get()
{
       var ip = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();
       return Ok();
}
0

A masz w startupie takie coś ?

services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
0

Tak, wpisałem

1 użytkowników online, w tym zalogowanych: 0, gości: 1