Tips: Cara Mendapatkan IP Address User di Laravel

Zainal Hasan |

Biasanya dalam sebuah aplikasi, dibutuhkan adanya support audit untuk mengetahui darimana suatu proses bisnis dilakukan oleh user kita. Satu dari sekian data yang bisa kita dapatkan adalah IP Address user. Di Laravel ada beberapa cara untuk mendapatkan IP Address user.

Request

Cara paling mudah adalah memanfaatkan Request object. Caranya cukup dengan memanggil method ip(). Object request bisa didapat dari berbagai cara, bisa melalui Laravel IoC, helper atau pun melalui Facades. Penggunaan load balancer atau sejenisnya akan membuat IP yg dikembalikan adalah IP dari server. Solusinya daftarkan saja IP dari server kalian di Middleware TrustProxies.

HTTP Header

Jika kita menggunakan load balancer, reverse proxy, atau sejenisnya maka besar kemungkinan IP Address yang didapat adalah IP dari server firewall, bukan IP dari user. Maka, cara untuk mendapatkan IP Address user adalah menggunakan request header. Caranya cukup memanggil method header('X-Forwaded-For') dari request object. Ingat, mengambil isi header secara langsung seperti ini rawan dengan XFF attack. Tapi tenang, di Laravel ada fitur untuk menangani ini, yaitu Middleware Trust Proxies. Kalian bisa mendaftarkan IP dari proxy server kalian. Setelah itu biarkan Laravel menangani sisanya :)

PHP Super Global Variable

Untuk mendapatkan IP Address user, kita juga bisa mengambil nilai dari super global variable $_SERVER['REMOTE_ADDR']. Jika menggunakan load balancer, proxy, atau sejenisnya maka cara ini tidak berlaku karena akan mengembalikan IP Address dari proxy server.

Referensi

Related post