如何获得使用PHP的服务器的本地IP地址?


我正在开发一个只能在本地networking上运行的PHP应用程序。 应用程序将使用自定义安装程序安装到服务器,就像使用Stunnix高级Web服务器所做的一样。

作为使应用程序更加用户友好的一部分,我计划显示服务器的本地IP ,以便networking中的其他计算机通过在地址栏中input此IP来访问应用程序非常容易。

问题是我无法获得服务器的本地IP 。

我努力了

WAMP 3.06,是目录到虚拟主机坏了?

同一域(本地主机)上的XHR跨域错误

如何使用pcntl_fork()与Apache?

为什么我的XHR呼叫等待对方返回响应

我如何在.htaccess文件中定义variables并使用它?

SERVER_NAME (仅显示127.0.0.1)

REMOTE_ADDR (显示客户端外部IP)

SERVER_ADDR显示正确的IP,但只有当我使用完全违背其目的的IP从客户端访问它时才这样做。

我只想通过http://localhost本身直接从服务器访问时显示服务器的本地IP地址 。

我确信这是不可能的。 但如果是这样,请帮忙。

编辑

我正在开发一个跨平台的PHP服务器应用程序的东西。 我们将Apache,PHP安装程序和sqlite数据库作为一键安装程序与我们的PHP应用程序捆绑在一起,使其尽可能地方便用户。 任何人都可以在运行Windows,Mac或Linux的计算机上进行部署。 安装完成后,当用户在服务器上打开应用程序时,他可以看到可用于连接到此服务器的IP地址[本地IP]和端口。 该应用程序将只在本地networking运行,而不是在互联网上运行。

它应该像Air Droid那样显示本地IP。 屏幕截图: https : //lh3.ggpht.com/PmLopRm-Lj9WTnzm2MBI-bTbCLopAyqtd4C_4nvyDwLg8X0QwDbBbEREdWGHG5xku4s

Django,apache,mod_wsgi – 错误:脚本头过早结束

如何生成适用于Nginx和Apache的SSL?

.htaccessredirect到子域

PHP / Apache的内存上限

simplexml_load_file不起作用

你在这里遇到的问题是,这不是一个静态的信息。 任何给定的计算机可以有多个与多个网卡相关的IP地址。 其中一些/全部/全部都不具有可用的Web服务。 对于你所要求的操作系统的问题可能没有一个单一的答案。

如果你的服务器有一个简单的,单一的IP地址配置,那么你可能是最好的硬编码 – 这是最简单的选择。 如果你想动态地确定它,这里有一些信息,你会希望找到有用的信息:

$_SERVER['HTTP_HOST']包含输入到浏览器的地址栏中的地址,以访问该页面。 如果通过在浏览器中输入(例如) http://192.168.0.1/index PHP来访问页面, $_SERVER['HTTP_HOST']将是192.168.0.1 。

如果您使用DNS名称来访问页面, gethostbyname($_SERVER['HTTP_HOST']); 会将该DNS        名称转换为IP地址。

$_SERVER['SERVER_NAME']包含已在Web服务器配置中配置的名称,因为它是服务器页面。 如果你打算使用这个,你可能只需要用PHP编写代码。

$_SERVER['SERVER_ADDR']将包含服务器主IP地址的操作系统。 这可能是也可能不是用于访问该页面的IP地址,它可能是也可能不是与Web服务器绑定的IP地址。 它很大程度上取决于操作系统和服务器配置 如果服务器有一个IP地址,这可能是一个安全的选择,虽然有些情况下可能包含127.0.0.1 。

猜你喜欢

转载自blog.csdn.net/chenrui310/article/details/130004515