In this tutorial we will show you how to get ip address of user/client. we will show you different method for get ip ip address of user/client.
METHOD – 1
$user_ip_address = ""; $user_ip_address = $_SERVER['HTTP_CLIENT_IP'];
METHOD – 2
function get_client_ip() { $user_ip_address = ""; if (!empty($_SERVER['HTTP_CLIENT_IP'])) { // For HTTP_CLIENT_IP type Ip $user_ip_address = $_SERVER['HTTP_CLIENT_IP']; } else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { // to it for from proxy IP Address $user_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { // to check ip is pass from proxy $user_ip_address = $_SERVER['REMOTE_ADDR']; } return $user_ip_address; }
METHOD – 3
getenv() is use for get value of environment of variable in php.
// get_client_ip() Function to IP address of client/user function get_client_ip() { $user_ip_address = ""; if (getenv('HTTP_CLIENT_IP')) { // For HTTP_CLIENT_IP type Ip $user_ip_address = getenv('HTTP_CLIENT_IP'); } else if(getenv('HTTP_X_FORWARDED_FOR')) { // For HTTP_X_FORWARDED_FOR type Ip $user_ip_address = getenv('HTTP_X_FORWARDED_FOR'); } else if(getenv('HTTP_X_FORWARDED')) { // For HTTP_X_FORWARDED type Ip $user_ip_address = getenv('HTTP_X_FORWARDED'); } else if(getenv('HTTP_FORWARDED_FOR')) { // For HTTP_FORWARDED_FOR type Ip $user_ip_address = getenv('HTTP_FORWARDED_FOR'); } else if(getenv('HTTP_FORWARDED')) { // For HTTP_FORWARDED type Ip $user_ip_address = getenv('HTTP_FORWARDED'); } else if(getenv('REMOTE_ADDR')) { // For REMOTE_ADDR type Ip $user_ip_address = getenv('REMOTE_ADDR'); } else { // If not able get ip $user_ip_address = 'UNKNOWN'; } return $user_ip_address; }
METHOD – 4
$_SERVER is use for an array contains server variables created by the web server in php.
// get_client_ip() Function to IP address of client/user function get_client_ip() { $user_ip_address = ""; if (isset($_SERVER['HTTP_CLIENT_IP'])) { // For HTTP_CLIENT_IP type Ip $user_ip_address = $_SERVER['HTTP_CLIENT_IP']; } else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { // For HTTP_X_FORWARDED_FOR type Ip $user_ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; } else if(isset($_SERVER['HTTP_X_FORWARDED'])) { // For HTTP_X_FORWARDED type Ip $user_ip_address = $_SERVER['HTTP_X_FORWARDED']; } else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) { // For HTTP_FORWARDED_FOR type Ip $user_ip_address = $_SERVER['HTTP_FORWARDED_FOR']; } else if(isset($_SERVER['HTTP_FORWARDED'])) { // For HTTP_FORWARDED type Ip $user_ip_address = $_SERVER['HTTP_FORWARDED']; } else if(isset($_SERVER['REMOTE_ADDR'])) { // For REMOTE_ADDR type Ip $user_ip_address = $_SERVER['REMOTE_ADDR']; } else { // If not able get ip $user_ip_address = 'UNKNOWN'; } return $user_ip_address; }
This function is use check enter ip address is validate. It will check ip have class validate.It will check valid ip address class A To E
Class | Theoretical Address Range | Binary Start |
---|---|---|
A | 0.0.0.0 to 127.255.255.255 | |
B | 128.0.0.0 to 191.255.255.255 | 10 |
C | 192.0.0.0 to 223.255.255.255 | 110 |
D | 224.0.0.0 to 239.255.255.255 | 1110 |
E | 224.0.0.0 to 239.255.255.255 | 1110 |
Class E has not equipped with any subnet mask.
function check_validate_ip($user_ip_address) { if (strtolower($user_ip_address) === 'UNKNOWN') return false; // Convert Internet Protocol(IPv4) // dotted address into a long integer. $user_ip_address = ip2long($user_ip_address); // if the ip is set and not equivalent to 255.255.255.255 if ($user_ip_address !== false && $user_ip_address !== -1) { $user_ip_address = sprintf('%u', $user_ip_address); // do private network range checking if ($user_ip_address >= 0 && $user_ip_address <= 50331647) { return false; } if ($user_ip_address >= 167772160 && $user_ip_address <= 184549375) { return false; } if ($user_ip_address >= 2130706432 && $user_ip_address <= 2147483647) { return false; } if ($user_ip_address >= 2851995648 && $user_ip_address <= 2852061183) { return false; } if ($user_ip_address >= 2886729728 && $user_ip_address <= 2887778303) { return false; } if ($user_ip_address >= 3221225984 && $user_ip_address <= 3221226239) { return false; } if ($user_ip_address >= 3232235520 && $user_ip_address <= 3232301055) { return false; } if ($user_ip_address >= 4294967040) { return false; } } return true; }