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
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