我需要从一个IP地址使用PHP修剪最后一个八位字节。基本上我试图在第三个点后删除任何数字。我想知道是否有一个开箱即用的解决方案?因为我的正则表达式能力基本上是最基本的。非常感谢。修剪IP地址八位组
7
A
回答
17
$trimmed = implode(".", array_slice(explode(".", $ip), 0, 3));
或
$trimmed = substr($ip, 0, strrpos($ip, "."));
或可能
$trimmed = preg_replace("/(\d{1,3})\.(\d{1,3}).(\d{1,3}).(\d{1,3})/", '$1.$2.$3', $ip);
更数学的方式,不能删除最后一个数字,而是用0来替换它:
$newIp = long2ip(ip2long("192.168.0.10") & 0xFFFFFF00);
0
Regexp vatiant
$ip = '192.168.20.10';
preg_replace_callback(
'/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/'
, create_function('$matches', '$matches[4] = "0"; array_shift($matches); return implode(".", $matches);')
, $ip
);
你也可以使用ip2long和long2ip ......但没有关于“一体化解决方案”与它的想法:
$ip = ip2long('192.168.20.10') - 10;
echo long2ip($ip);
2
这将删除最后一个数字和点。
$trimmed = preg_replace('/\.\d{1,3}$/', '', $ip);
相关问题
- 1. 的Python:执行IP地址八位位组之间的数学函数
- 2. 我需要为每个八位字节填充零地址的IP地址
- 3. 从IP地址提取前三个八位字节
- 4. 更新IP地址子网内的特定八位字节
- 5. IP地址位置
- 6. 大地定位IP地址
- 7. C#修剪字符串,IP地址和端口
- 8. 选择组播IP地址
- 9. 根据前两个八位字节查找不同的IP地址?
- 10. Perl的 - 决定是否基于IP地址的第三个八位
- 11. Docker - 修复服务IP地址
- 12. 修改ip地址袜子捕获pcap
- 13. Python将IP转换为八进制地址
- 14. 如何比较包含在两个PhP变量中的两个ip地址的前三个八位组
- 15. 分配IP地址到物理位置
- 16. IP地址的位置检测技术
- 17. IP地址
- 18. php:geting ip地址
- 19. 取IP地址
- 20. ip地址
- 21. cURL IP地址
- 22. 块IP地址
- 23. 与IP地址
- 24. ejabberd ip地址
- 25. java中的剪裁修剪网址
- 26. sed从ip中删除前两个八位组
- 27. 使用javascript修剪网址
- 28. Django网址与IP地址
- 29. 使用IP地址组件C#
- 30. 网址重写和修剪网址
我还能要求什么?祝你有美好的一天! :) – 2009-05-26 09:39:51