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

前端之家收集整理的这篇文章主要介绍了如何使用PHP获取服务器的本地IP地址?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个仅在本地业务网络上运行的 PHP应用程序.该应用程序将使用自定义安装程序安装到服务器,就像使用Stunnix Advanced Webserver进行的操作一样.

作为使应用程序更加用户友好的一部分,我计划显示服务器的LOCAL IP,以便网络中的其他计算机通过在其地址栏中键入该IP来访问应用程序非常容易.

问题是我无法获得服务器的LOCAL IP.

我努力了

SERVER_NAME(仅显示127.0.0.1)

REMOTE_ADDR(显示客户端外部IP)

SERVER_ADDR显示正确的IP,但是只有当我使用IP完全失败的客户端访问它时才会这样做.

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

我有点肯定这是不可能的.但如果是,请帮忙.

编辑

我正在开发跨平台PHP服务器应用程序的一些事情.我们将Apache,PHP安装程序和sqlite数据库作为一个点击安装程序与我们的程序捆绑在一起,使其尽可能用户友好.任何人都可以在运行Windows,Mac或Linux的计算机上部署它.在用户在服务器上打开应用程序之后安装完毕,可以看到可以用来连接到这个服务器的ip address [local ip]和port.该应用程序将仅在本地网络上运行,而不是在互联网上运行.

它应该显示本地IP,就像名为Air Droid的Android应用程序一样.
截图:https://lh3.ggpht.com/PmLopRm-Lj9WTnzm2MBI-bTbCLopAyqtd4C_4nvyDwLg8X0QwDbBbEREdWGHG5xku4s

你在这里的问题是这不是一个静态的信息.任何给定的计算机可以具有与多个网卡相关联的多个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.

很长的一点是,没有100%可靠的方式来确定Web服务器的有保证的工作IP地址,而不检查发送到Web服务器的信息,以生成您正在创建的页面,其中你说完全失败了它的目的.

猜你在找的PHP相关文章