✨ IP Check endpoints
This commit is contained in:
@@ -13,6 +13,35 @@ public class WellKnownController(
|
|||||||
IEtcdClient etcdClient)
|
IEtcdClient etcdClient)
|
||||||
: ControllerBase
|
: ControllerBase
|
||||||
{
|
{
|
||||||
|
public class IpCheckResponse
|
||||||
|
{
|
||||||
|
public string? RemoteIp { get; set; }
|
||||||
|
public string? XForwardedFor { get; set; }
|
||||||
|
public string? XForwardedProto { get; set; }
|
||||||
|
public string? XForwardedHost { get; set; }
|
||||||
|
public string? XRealIp { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet("ip-check")]
|
||||||
|
public ActionResult<IpCheckResponse> GetIpCheck()
|
||||||
|
{
|
||||||
|
var ip = HttpContext.Connection.RemoteIpAddress?.ToString();
|
||||||
|
|
||||||
|
var xForwardedFor = Request.Headers["X-Forwarded-For"].FirstOrDefault();
|
||||||
|
var xForwardedProto = Request.Headers["X-Forwarded-Proto"].FirstOrDefault();
|
||||||
|
var xForwardedHost = Request.Headers["X-Forwarded-Host"].FirstOrDefault();
|
||||||
|
var realIp = Request.Headers["X-Real-IP"].FirstOrDefault();
|
||||||
|
|
||||||
|
return Ok(new IpCheckResponse
|
||||||
|
{
|
||||||
|
RemoteIp = ip,
|
||||||
|
XForwardedFor = xForwardedFor,
|
||||||
|
XForwardedProto = xForwardedProto,
|
||||||
|
XForwardedHost = xForwardedHost,
|
||||||
|
XRealIp = realIp
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
[HttpGet("domains")]
|
[HttpGet("domains")]
|
||||||
public IActionResult GetDomainMappings()
|
public IActionResult GetDomainMappings()
|
||||||
{
|
{
|
||||||
|
37
DysonNetwork.Pass/IpCheckController.cs
Normal file
37
DysonNetwork.Pass/IpCheckController.cs
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace DysonNetwork.Pass;
|
||||||
|
|
||||||
|
[ApiController]
|
||||||
|
[Route("/api/ip-check")]
|
||||||
|
public class IpCheckController : ControllerBase
|
||||||
|
{
|
||||||
|
public class IpCheckResponse
|
||||||
|
{
|
||||||
|
public string? RemoteIp { get; set; }
|
||||||
|
public string? XForwardedFor { get; set; }
|
||||||
|
public string? XForwardedProto { get; set; }
|
||||||
|
public string? XForwardedHost { get; set; }
|
||||||
|
public string? XRealIp { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet("ip-check")]
|
||||||
|
public ActionResult<IpCheckResponse> GetIpCheck()
|
||||||
|
{
|
||||||
|
var ip = HttpContext.Connection.RemoteIpAddress?.ToString();
|
||||||
|
|
||||||
|
var xForwardedFor = Request.Headers["X-Forwarded-For"].FirstOrDefault();
|
||||||
|
var xForwardedProto = Request.Headers["X-Forwarded-Proto"].FirstOrDefault();
|
||||||
|
var xForwardedHost = Request.Headers["X-Forwarded-Host"].FirstOrDefault();
|
||||||
|
var realIp = Request.Headers["X-Real-IP"].FirstOrDefault();
|
||||||
|
|
||||||
|
return Ok(new IpCheckResponse
|
||||||
|
{
|
||||||
|
RemoteIp = ip,
|
||||||
|
XForwardedFor = xForwardedFor,
|
||||||
|
XForwardedProto = xForwardedProto,
|
||||||
|
XForwardedHost = xForwardedHost,
|
||||||
|
XRealIp = realIp
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user