我需要从一个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. 发现IP八位组,然后将其设为href网址?
- 8. 大地定位IP地址
- 9. C#修剪字符串,IP地址和端口
- 10. 将IP地址分成八位字节,但用sscanf跳过第一个八位字节
- 11. 将IP地址分割成八位字节,然后对每个八位字节做一些数学计算
- 12. 选择组播IP地址
- 13. 从IP地址获取地理位置
- 14. MapBox大地定位的IP地址
- 15. 正则表达式匹配IP地址的前三个八位字节
- 16. Perl的 - 决定是否基于IP地址的第三个八位
- 17. 使用egrep从shell变量中按八位字节搜索IP地址
- 18. Powershell:按IP地址的第二个八位字节过滤服务器列表
- 19. 根据前两个八位字节查找不同的IP地址?
- 20. 修改ip地址袜子捕获pcap
- 21. 修改IP和MAC-地址的网络
- 22. Docker - 修复服务IP地址
- 23. Python将IP转换为八进制地址
- 24. MAC地址和IP地址
- 25. 变换IP地址,IP地址范围(起始IP - 结束IP)
- 26. 本地IP地址?
- 27. 如何比较包含在两个PhP变量中的两个ip地址的前三个八位组
- 28. IP地址在室内的位置
- 29. 如何从IP地址找到位置?
- 30. IP地址的位置检测技术
我还能要求什么?祝你有美好的一天! :) – 2009-05-26 09:39:51