How to get the my system's IP address

前端 未结 4 540
野性不改
野性不改 2020-12-22 11:50

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

相关标签:
4条回答
  • 2020-12-22 12:02

    $_SERVER['SERVER_ADDR']

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

    0 讨论(0)
  • 2020-12-22 12:02

    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.

    0 讨论(0)
  • 2020-12-22 12:15

    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;
    }
    
    0 讨论(0)
  • 2020-12-22 12:24

    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".

    0 讨论(0)
提交回复
热议问题