Reputation: 967
How do I get my system's IP address?
I am using $ip_address=$_SERVER[REMOTE_ADDR];
, but it returns my localhost IP address instead of my system's IP address.
Upvotes: 0
Views: 4786
Reputation: 54
A late reply but I hope it still might be able to help someone. I needed system ip for a project so I quickly scrapped up a custom function using regular expressions. It works on ubuntu linux (and technically should work on any distro/version of linux).
function getLocalIp(){
$output = shell_exec('/sbin/ifconfig');
preg_match("/inet?[[:space:]]?addr:([0-9.]+)/", $output, $matches);
if(isset($matches[1]))
$ip = $matches[1];
else
$ip = 0;
return $ip;
}
It requires:
If you happen to create something similar for windows or improve the functionality of this function, please share your code with the rest of us.
Upvotes: 0
Reputation: 3634
This function will determine the real IP address:
function ipCheck() {
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
}
elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_X_FORWARDED')) {
$ip = getenv('HTTP_X_FORWARDED');
}
elseif (getenv('HTTP_FORWARDED_FOR')) {
$ip = getenv('HTTP_FORWARDED_FOR');
}
elseif (getenv('HTTP_FORWARDED')) {
$ip = getenv('HTTP_FORWARDED');
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
Upvotes: 1
Reputation: 13542
$_SERVER['SERVER_ADDR']
See the php docs for a full list of stuff you might find in the $_SERVER
superglobal.
Upvotes: 2
Reputation: 52372
If you are accessing a local server, then your local IP address is the remote IP. PHP is giving you the correct response.
If you want to know your IP address to the rest of the internet, go to Google and type "what is my ip".
Upvotes: 2