作为使应用程序更加用户友好的一部分,我计划显示服务器的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地址配置,那么您可能最好对其进行硬编码,这是最简单的选择.如果你想动态地确定它,这里有一些信息,你会希望找到有用的:
> $_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服务器的信息,以生成您正在创建的页面,其中你说完全失败了它的目的.