[C#] วิธีการ Get Client IP Address บน ASP.NET Core 2.0

ในส่วน ASP.NET ที่มีการพัฒนามาอย่างต่อเนื่อง เลยมีรูปแบบการพัฒนาที่แตกต่างกันออกไป ในส่วนของการ Get client IP Address ก็เช่นกัน การเขียน code ในรูปแบบเดิมจะไม่สามารถใช้ได้แล้ว ในส่วนของการเขียน code ในรูปแบบดั้งเดิมที่เราคุ้นเคยกันจะเป็นรูปแบบดังนี้

var ip = Request.UserHostAddress;

ในส่วนของ ASP.NET CORE 2.0 และใน version ต่อๆ ไปในอนาคตนั้น จะต้องทำการ inject HttpContextAccessor ลงบน file Startup.cs ในส่วนของ ConfigureServices method ก่อนทุกครั้ง

หลังจากที่เราเพิ่มในส่วนของ method ดังกล่าวแล้วเวลาจะเรียกใช้งาน จะต้องประกาศเป็น constructor ในแบบ dependency injection เพื่อให้ส่วนอื่นสามารถเข้าถึงได้ง่าย ดังตัวอย่าง

การ Get Client IP Address ก็จะสามารถ call จาก method httpContextAccessor.HttpContext.Connection.RemoteIpAddress ได้ทันทีซึ่งเราสามารถนำไปประยุกต์ใช้งานได้ในหลายๆ แบบ

สรุป

ถึงแม้ว่า Framework นั้นจะ Release version ใหม่ออกมา ก็ควรจะศึกษารูปแบบของ Framework ก่อนเสมอ เพราะบางครั้งอาจจะเปลี่ยนรูปแบบการเขียน code ไปเลย เช่นเดียวกับที่กล่าวในบทความ

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store