PHP获取局域网ip(192.168)

有时候,程序中,需要获取本机内网ip的情况,经过各种资料查找,最终确定一下代码:

php 复制代码
//获取内网ip
    function getLocalIP() {
        exec("ipconfig /all",$arr);
        $res = mb_convert_encoding($arr, 'UTF-8', 'GBK');
        $ip = '';
        foreach ($res as $item) {
            if (strpos($item, 'DHCP 服务器') !== false) {
                $item = str_replace(' . ', '', $item);
                $index = strpos($item, '192');
                $ip = substr($item, $index);
            }
        }
        return $ip;
    }

注意事项:

1、禁用函数中,需要去除exec

2、linux系统可能是其他命令,需要将"ipconfig /all"替换成对应的命令行

3、返回结果,可能不带"DHCP 服务器"关键字,需要自行通过结果修改

4、正常命令行的结果不是utf8格式,需要自行转换格式

相关推荐
_小马快跑_19 小时前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android
_小马快跑_19 小时前
Kotlin | 从SparseArray、ArrayMap的set操作符看类型检查的不同
android
_小马快跑_19 小时前
Android | 为什么有了ArrayMap还要再设计SparseArray?
android
_小马快跑_19 小时前
Android TextView图标对齐优化:使用LayerList精准控制drawable位置
android
_小马快跑_19 小时前
Kotlin协程并发控制:多线程环境下的顺序执行
android
_小马快跑_19 小时前
Kotlin协程异常捕获陷阱:try-catch捕获异常失败了?
android
_小马快跑_19 小时前
Android | 权限申请与前置说明弹窗同时展示的优雅方案
android
_小马快跑_19 小时前
Android | Channel 与 Flow的异同点
android
_小马快跑_19 小时前
Android | 文本测量:从 Paint.measureText 到 StaticLayout 的替换
android
树獭非懒21 小时前
告别繁琐多端开发:DivKit 带你玩转 Server-Driven UI!
android·前端·人工智能