Meena
Meena

Reputation: 967

How to get the my system's IP address

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

Answers (4)

codingb
codingb

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:

  • making a system call using shell_exec.
  • using regular expressions to find the value of internal ip address.

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

Pradeep Singh
Pradeep Singh

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

Lee
Lee

Reputation: 13542

$_SERVER['SERVER_ADDR']

See the php docs for a full list of stuff you might find in the $_SERVER superglobal.

Upvotes: 2

Dan Grossman
Dan Grossman

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

Related Questions