如何使用PHP获取IP表单浏览器地址栏?

时间:2016-03-10 10:29:01

标签: php url ip

我想使用PHP获取IP表单浏览器地址栏。

Ip是

https://192.168.40.32/example.com/

我只想要像192.168.40.32这样的IP。

我正在使用此功能来获取IP:

echo $_SERVER['SERVER_NAME'];

但我表示双IP继续这样:

192.168.40.32192.168.40.32

那我该如何获得IP?

4 个答案:

答案 0 :(得分:0)

我认为这就是你想要的:

echo $_SERVER['REMOTE_ADDR'];

你应该看看here

获取IP的另一种方法是使用explode

$url='https://192.168.40.32/example.com/';
$first=explode('//',$url);
$string=explode('/',$first[1]);
var_dump($string[0]); //192.168.40.32

答案 1 :(得分:0)

data-pedit

答案 2 :(得分:0)

这是一个试图在url栏中查找ip地址的函数,如果它没有在任何ip中找到它将在$ _SERVER数组中查找ip地址。

<?php
function uriIP() {
    $s = $_SERVER['HTTP_HOST'];
    //Look for a number with dots made like: ***.*.**.*** ex.
    preg_match('/[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}/i', $s, $matches);
    if (!isset($matches[0])) {

        //Check to see if we have an IP address stored in the $_SERVER array
        if ($_SERVER['SERVER_ADDR']) {
            //Return the value if we find any (true)
            return $_SERVER['SERVER_ADDR'];
        } else {
            //nothing found here, return false
            return false;
        }
    //if we found a match in our regex, return the first match:
    } else {
        return $matches[0];
    }
}
print_r(uriIP());

答案 3 :(得分:0)

如果ip地址在字符串中重复,最好使用正则表达式。 preg_match

<?php
//Example - 1
$server_name='https://192.168.40.32/example.com/192.168.40.33/192.168.40.34'; //$_SERVER['SERVER_NAME'];
$pattern = '/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/'; //regex pattern
preg_match($pattern, $server_name, $ip_data); //get the correct ip address
$ip = $ip_data[0]; //its an array 
print_r($ip); // display to see result.
?>

检查结果:https://eval.in/534366


您可以使用获取IP地址;

$_SERVER['REMOTE_ADDR']

<?php
//Example - 2
$url = $_SERVER['REMOTE_ADDR']; //get the ip address
$my_valid_ip = filter_var($url, FILTER_VALIDATE_IP); // check the ip address if its valid
print_r($my_valid_ip); //display to see result.
?>