如何在php中获取ip地址的前3个部分

时间:2013-02-18 14:49:48

标签: php

我想在php中获取前3个部分的ip地址。

例如,让我们将IP地址视为

"1.2.3.4";

然后我想得到

"1.2.3";

提前致谢。

6 个答案:

答案 0 :(得分:5)

您可以这样做以获得前3个部分:

$nums = explode(".", "1.2.3.4") ;

echo $nums[0]. "." .$nums[1]. "." .$nums[2] ; 

或者您也可以这样做:

$ip = "1.2.3.4";
$dotPosition = strrpos($ip, '.'); //getting position of the last dot
echo substr($ip, 0, $dotPosition); //getting the characters until that position.

答案 1 :(得分:3)

$nums = explode(".", "1.2.3.4") ;
echo "{$nums[0]}.{$nums[1]}.{$nums[2]}" ; //echoes 1.2.3

答案 2 :(得分:2)

$ip = "1.2.3.4";

echo substr($ip, 0, strrpos($ip, '.'));

输出

  

1.2.3

这使用strrpos()来查找.字符的最后一次出现。

答案 3 :(得分:2)

$ip = "1.2.3.4";

$nums = explode(".",$ip) ;

echo $nums[0].".".$nums[1].".".$nums[2] ;

答案 4 :(得分:1)

这是一个功能:

function GetFirstThree($ip) {
    if(strlen($ip) <= 10) {
        $pos = strpos($ip, '.', strlen($ip)-3);
    } else {
        $pos = strpos($ip, '.', strlen($ip)-4);
    }
    $ip = substr($ip, 0, $pos);
    $ip = substr($ip, 0, strlen($ip));
    return $ip;
}

echo GetFirstThree("127.0.0.1");

答案 5 :(得分:0)

$ip = "1.2.3.4"
$firstThreeOctetOfIp = implode('.', array_slice(explode('.', $ip), 0, 3)); // "1.2.3"
  1. explode 获取具有 4 个值的数组的 IP
  2. array_slice 获取具有所需值的数组
  3. implode 从最终数组中获取字符串