需要使用 PHP 在 Ubuntu 上查找网络接口的 IP 地址

2023-12-26

我需要帮助查找我的计算机在网络上时的 IP 地址。我正在构建一个信息亭类型的系统,该系统将被放置在不同的位置,并且我需要能够使用网络浏览器在本地网络上查找该计算机的 IP 地址。

如果我使用$_SERVER['SERVER_ADDR']我通过该计算机上的本地浏览器 (127.0.0.1) 获取要连接的 IP 地址。

我无法呼叫并获取公共 IP,因为这些设备可能位于路由器后面,而我不想要路由器的公共 IP 地址。

我需要在服务器上找到该盒子的 IP 地址(例如:192.168.0.xxx)

我确实知道,当我从终端执行“ip addr show”时,我得到

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 61:a6:4d:63:a2:80 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.211/24 brd 192.168.0.255 scope global em1
    inet6 fe80::62a4:4cff:fe64:a399/64 scope link 
       valid_lft forever preferred_lft forever

当我尝试时:

$command="ip addr show";
$localIP = exec ($command);

$localIP输出“valid_lft 永远 Preferred_lft 永远”,但没有其他信息。如果我能把全部事情都放进去$localIP然后我可以过滤掉 inet IP 地址,但它不会给我一切。

有没有更简单的方法来执行此操作,或者在尝试执行“ip addr show”命令时我缺少什么?另外,我在用户 apache 下运行,无法以 root 身份运行该应用程序。


据记录exec() http://php.net/manual/en/function.exec.php,函数仅返回 exec 命令输出的最后一行。要捕获所有输出,您必须使用函数的可选第二个参数:

$last_line = exec('ip addr show', $full_output);
                                  ^^^^^^^^^^^^

$full_output将是执行程序的输出行数组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要使用 PHP 在 Ubuntu 上查找网络接口的 IP 地址 的相关文章

  • Instagram 如何使用 Amazon S3?

    在将文件上传到 Amazon S3 时 我需要深入了解 Instagram 的工程 我刚刚开始使用 S3 我认为 Instagram 是一个值得效仿的好模式 因为他们每天上传数千张图片 我的应用程序有点相似 用户上传图片 可以删除自己的图片
  • 基于 PHP 的 CSV 编辑器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道用 PHP 编写的在线 CSV 编辑器允许用户打开 编辑和保存给定的 CSV 文件 我能找到的只
  • php 在内容前插入十六进制字符数

    我正在将网站移动到新服务器 旧服务器有 php 5 3 2 新服务器有 php 5 5 9 Centos httpd Apache 2 2 26 我已经复制了文件 它工作正常 除了唯一奇怪的事情 一些奇怪的十六进制数字被插入到页面内容之前
  • 为什么我应该使用 $_GET 和 $_POST 而不是 $_REQUEST? [复制]

    这个问题在这里已经有答案了 除此之外 REQUEST从 cookie 读取 有什么理由我应该使用 GET and POST代替 REQUEST 这样做的理论和实践理由是什么 当我只想让用户的某些数据返回某些数据时 我使用 REQUEST 当
  • UNIX 域 STREAM 和 DATAGRAM 套接字之间的区别?

    这个问题是NOTSTREAM 类型和 DATAGRAM 类型 INTERNET 套接字之间的区别 我知道 STREAM 套接字使用 TCP 数据报套接字使用 UDP 以及所有 TCP UDP 内容 按顺序到达的数据包 ACK NACK 等
  • PSR-4 代码库中条令生成器的解决方法

    在 Windows 机器上使用 Symfony 2 和 Doctrine 我正在尝试 从现有模式生成实体 php app console doctrine mapping import force CoreBundle annotation
  • 一次将多个值插入MySQL [重复]

    这个问题在这里已经有答案了 谁能解释一下为什么这个 PHP MySQL 不起作用 基本上我需要从表单中一次插入大量行 因此会有多个名称字段 多个短 中 长字段等 我收到此错误 Notice Undefined variable Short1
  • 如何将 ctype_alpha 与 UTF-8 结合使用

    如何将 ctype alpha 与 UTF 8 一起使用 我有这个代码 if empty POST false if isset POST first name empty POST first name if ctype alpha PO
  • 如何验证无效的 CIDR 块?

    我为我的 VPC 保留了以下 CIDR gt 10 0 0 0 22 这告诉我的是 我还有 10 位剩余用于我的主机 ip 或1 024地址 我试图计算range有效地址 因为 Amazon 在创建新的私有子网时要求提供有效的 IPv4 C
  • 如何在不需要设置 LD_LIBRARY_PATH shell 变量的情况下输入“cargo run”?

    我构建了一个 Rust 程序 通过 C 接口调用 C 函数 为了执行该程序 我必须运行 export LD LIBRARY PATH
  • Propel Query 中的动态表名称

    我想知道您是否可以使 propel 查询的表名称动态化 有点像变量 一个例子类似于 DynamicVar Query create 我让它在 ifs 中工作 就像下面的例子一样 但如果更动态地制作 可以删除相当多的行 这些表的设置都是相同的
  • CSV 从 UTF8 到 ISO-8859-1

    我正在尝试修改我的 CSV 导出 但它不会将我的 CSV 从 UTF 8 转换 保存为 ISO 8859 1 请问我做错了什么吗 实际上自从修改了这个之后 我得到了一个空的 CSV 文件 php 7 0 x function my Gene
  • URL 重写帮助

    RewriteEngine on RewriteCond REQUEST URI index php RewriteRule index php q 1 L 这应该将任何 url 重写为 index php q url 并且它可以工作 反正
  • 我可以显示我在 PHP 中设置的所有 cookie 吗?

    我正在尝试诊断 cookie 中的错误 但 cookie 的名称不是应有的名称 PHP 有没有办法打印我的域设置的所有 cookie 你有没有尝试过 print r COOKIE
  • 疯狂的 crond 行为。不断使 bash 进程失效

    我有一个看起来像这样的 crontab SHELL bin bash PATH sbin bin usr sbin usr bin MAILTO root HOME 0 59 var www html private fivemin zda
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • 无需下载整个文件即可读取 ID3 标签

    是否可以读取 MP3 文件的 ID3 标签 持续时间 艺术家 标题 而无需下载整个文件 我做了一些测试 只需下载 MP3 文件的几个字节就可以获得艺术家和标题标签 但我不确定持续时间和其他标签是否可能 Thanks 我刚刚发现 ffmpeg
  • 转换MAC地址格式

    我刚刚编写了一个小脚本 从交换机中提取数百个 MAC 地址进行比较 但它们的格式为 0025 9073 3014 而不是标准的 00 25 90 73 30 14 我对如何转换它感到困惑 我能想到的最好的办法就是在 处将它们分解成碎片 然后
  • sqlsrv_num_rows 不返回任何值

    我正在尝试获取查询中返回的行数 while 循环遍历结果有效 但由于某种原因 sqlsrv num rows 不返回任何值 result SELECT from dtable WHERE id2 apple query sqlsrv que
  • Laravel 5 注销特定用户

    在我的 laravel 5 应用程序中 有一个功能允许具有管理员角色的用户重置非管理员的任何人的密码 但这不会强制该人注销并再次登录 更改密码后如何强制用户注销 我没有对用于验证用户身份或任何内容的中间件进行任何更改 我不知道它是否有效 但

随机推荐

  • 如何使用访问控制允许来源?它只是放在 html head 标签之间吗?

    我一直在读关于Access Control Allow Origin因为它似乎可以有效地允许跨域请求 因为我可以访问外部站点 我的问题是我该如何使用Access Control Allow Origin允许跨域请求 我尝试过这个 别笑 顺便
  • 如何在树枝模板中的变量之间添加空格?

    这是一个非常简单的问题 但我还没有找到答案 这段代码 civilite nom prenom 打印 MRJOHSONBarry 我想在变量之间添加空格 我该怎么做 如果 Civilite nom prenom 不起作用 怎么样 civili
  • 我不断收到类型错误

    好吧 我正在自学 python 类 当我运行代码时 出现以下错误 class Critter object A virtual pet def init self name mood print A new critter has been
  • 使用批处理文件在 Windows 中生成 GUID

    如何在 Windows 中使用命令行运行的批处理文件中生成 GUID Windows SDK 附带了一个名为uuidgen 如果您有 Visual Studio 您将拥有 Windows SDK 并且需要运行Visual Studio 命令
  • WPF - 从 ItemsControl 的 ItemTemplate 内绑定到项目索引?

    有没有办法从 ItemsControl 的 ItemTemplate 中绑定到 ItemIndex 例如
  • 向 Ruby 数组添加回调函数,以便在添加元素时执行某些操作

    我想向 Ruby 数组添加回调函数之类的东西 这样当将元素添加到该数组时 就会调用该函数 我能想到的一件事是重写所有方法 如 有更简单的解决方案吗 以下代码仅调用size changed当数组大小发生更改并且传递数组的新大小时挂钩 a cl
  • 如何为继承的槽定义 S4 原型

    我有一个基类 我们称之为 A 其表示对于许多其他类来说是通用的 因此我定义了其他类 例如 B 来包含这个类 我想设置这些其他类 B 的原型以包含从 A 继承的插槽的默认值 我认为这是很自然的 setClass A representatio
  • SAS 错误消息(致命:在 MISSING 涂片生成期间检测到代码生成错误)

    有谁知道这个错误消息是什么意思 致命 在 MISSING smear 生成期间检测到代码生成错误 它是在连接大约 40 个数据集时发生的 我相信这可能是由于变量太多 大约 217 而达到了内存限制 但最好能得到这一点的确认 日志档案 301
  • jstree 自定义节点标记

    有没有办法拥有自定义标记或向某些节点添加额外的 html 元素 例如 我们想在路径下的所有节点的节点文本后面添加一个箭头 链接 当用户单击该箭头时 打开上下文菜单 我知道可以使用右键单击打开上下文菜单 但要求是在节点后面有一个箭头 并且单击
  • 应用程序退出时关闭模态视图控制器

    我有一个视图控制器 视图 A 当用户按下按钮时呈现模态视图 B 并且视图 B 本身有一个按钮来呈现视图 C 我的问题是 如果用户在视图 B 或如图 C 所示 下次启动应用程序时将出现相同的视图 有没有办法在退出时关闭视图 B 和 C 或在应
  • 如何在网站上预览用户要上传的视频文件(PHP、FiileAPI JS)

    我的意思是 当用户从系统中选择视频文件时 网页已经向他们显示他们想要上传的文件 我已经使用 FileAPI JS 使用图像文件进行预览 我想对视频文件的 FileAPI JS 做同样的事情 所以 它必须在我的客户端内工作 谢谢并感谢您的回答
  • 导入错误:导入 mechanize 时没有名为“_version”的模块

    我通过 pip 安装 mechanize 并在导入模块时收到错误 python Python 3 5 2 default Jun 28 2016 08 46 01 GCC 6 1 1 20160602 on linux Type help
  • 登录后重定向到原始任务

    因此 我想向用户发送电子邮件 其中包含一些链接 您可以单击这些链接来执行操作 但如果用户尚未登录 我希望能够让用户登录 然后将他重定向回他想要达到的目标 我在 application controller rb 中有这些方法 这在 URL
  • strtotime('today') 返回错误的时间?

    我正在尝试创建一个从用户当前日期开始的选择列表 我希望将其设置为 unix 时间戳格式的午夜 这就是我正在做的一切 today strtotime today echo today 这是我的结果 1333144800 即 2012 年 3
  • 在强类型视图中格式化可为 null 的 DateTime 字段

    我的模型中有一个 Person 类 其 BornDate 属性定义为 DisplayName Born Date public DateTime BornDate get set 在我看来 我将此字段用作 td br td 问
  • 阴影 UIview 和 ClipsToBounds

    我想将阴影设置为我的容器 UIView 我用这段代码来实现它 id initWithCoder NSCoder aDecoder self super initWithCoder aDecoder if self gt drop shado
  • 如何将 Visual Studio Code 连接到 Visual Studio Team Services

    我最近下载了 Visual Studio Code 并试图弄清楚如何将编辑器连接到我的 Visual Studio Team Services 项目 有人在这方面取得过成功吗 首先下载 Visual Studio 团队服务 https ma
  • jQuery 中元素在 DOM 中的相对位置

    给定两个 jquery 对象 是否有某种方法可以告诉我哪个在文档树中比另一个 更靠前 换句话说 通过一个文档 p p div p p div p p 是否有一些函数具有这样的行为 p1 isBefore p2 true p3 isBefor
  • “不包含适合入口点的静态‘main’方法”

    我不明白下面的代码有什么问题 当我尝试编译时 我收到消息 不包含适合入口点的静态 main 方法 这是我的代码 using System using System Collections Generic using System Compo
  • 需要使用 PHP 在 Ubuntu 上查找网络接口的 IP 地址

    我需要帮助查找我的计算机在网络上时的 IP 地址 我正在构建一个信息亭类型的系统 该系统将被放置在不同的位置 并且我需要能够使用网络浏览器在本地网络上查找该计算机的 IP 地址 如果我使用 SERVER SERVER ADDR 我通过该计算