PHP如何只獲得ipv4的地址

來源:互聯網
上載者:User
希望根據不同的ip位址區段,網站顯示不同的內容。目前針對ipv4的位址區段做了限制,但是有些用戶端訪問是通過ipv6的地址訪問,做的限制就沒有用了。所以我想問一下,有沒有可能通過php只擷取ipv4的代碼。
目前使用的php擷取ip的代碼如下:

function check_ip($str)    {        return preg_match('/""A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))"".){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))""Z/',$str)>0;    }    function getIP($isHeader=false)    {        if($isHeader)        {            if (isset($_SERVER['HTTP_CLIENT_IP']) && check_ip($_SERVER['HTTP_CLIENT_IP']))            {                return $_SERVER['HTTP_CLIENT_IP'];            }            else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && check_ip($_SERVER['HTTP_X_FORWARDED_FOR']))            {                return $_SERVER['HTTP_X_FORWARDED_FOR'];            }        }        if (isset($_SERVER['REMOTE_ADDR']) && check_ip($_SERVER['REMOTE_ADDR']))        {            return $_SERVER['REMOTE_ADDR'];        }        else        {            return 'unknown';        }    }

回複內容:

希望根據不同的ip位址區段,網站顯示不同的內容。目前針對ipv4的位址區段做了限制,但是有些用戶端訪問是通過ipv6的地址訪問,做的限制就沒有用了。所以我想問一下,有沒有可能通過php只擷取ipv4的代碼。
目前使用的php擷取ip的代碼如下:

function check_ip($str)    {        return preg_match('/""A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))"".){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))""Z/',$str)>0;    }    function getIP($isHeader=false)    {        if($isHeader)        {            if (isset($_SERVER['HTTP_CLIENT_IP']) && check_ip($_SERVER['HTTP_CLIENT_IP']))            {                return $_SERVER['HTTP_CLIENT_IP'];            }            else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && check_ip($_SERVER['HTTP_X_FORWARDED_FOR']))            {                return $_SERVER['HTTP_X_FORWARDED_FOR'];            }        }        if (isset($_SERVER['REMOTE_ADDR']) && check_ip($_SERVER['REMOTE_ADDR']))        {            return $_SERVER['REMOTE_ADDR'];        }        else        {            return 'unknown';        }    }
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.