1

我正在尝试在 php 中获取 IP 地址的前 3 部分。

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

"1.2.3.4";

那么我想得到

"1.2.3";

提前致谢。

4

6 回答 6

6

您可以这样做以获得前 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.
于 2013-02-18T14:55:03.127 回答
5
$ip = "1.2.3.4";

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

输出

1.2.3

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

于 2013-02-18T14:55:31.987 回答
3
$nums = explode(".", "1.2.3.4") ;
echo "{$nums[0]}.{$nums[1]}.{$nums[2]}" ; //echoes 1.2.3
于 2013-02-18T14:52:34.580 回答
2
$ip = "1.2.3.4";

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

echo $nums[0].".".$nums[1].".".$nums[2] ;
于 2013-02-18T14:57:13.490 回答
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");
于 2013-02-18T15:06:54.113 回答
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从最终数组中获取字符串
于 2021-07-09T05:29:51.970 回答