✨ 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