【问题标题】:PHP display server IP AddressPHP显示服务器IP地址
【发布时间】:2011-05-24 03:46:35
【问题描述】:

我正在开发一个网站,我想做的一件事就是向用户显示我的 IP 地址。该网站是用 CodeIgniter 制作的,所以我想用 PHP 找到我的服务器 IP。 IP 地址可能会改变(它是漫游者),所以我想动态地找到它,而不仅仅是硬编码。我试过这个:

$data['hostname'] = NULL;
$data['ip'] = NULL;
$var = gethostname();
if ($var === FALSE) {
  $var = NULL;
} else {
  $data['hostname'] = $var;
  $data['ip']   = gethostbyname($var);
}

但是,我没有给我主机名和 IP,而是得到:“Moria”和“127.0.1.1”。不完全是我要找的。相反,它应该为主机名和 IP 地址显示“Moria.student.rit.edu”。有什么帮助吗?

【问题讨论】:

    标签: php ip-address ip


    【解决方案1】:

    服务器ip地址 $_SERVER['SERVER_ADDR'];

    对于服务器端口 $_SERVER['SERVER_PORT'];

    【讨论】:

      【解决方案2】:

      如果你的 laravel 应用运行在内部服务器上,你可以使用以下方式获取服务器的外部地址:

       $external_ip = exec('curl http://ipecho.net/plain; echo');
      

      【讨论】:

      • 邪恶的,坏的和错误的。这段代码非常糟糕,永远不应该在生产中使用。您应该使用内在的 PHP Curl 库。这避免了分叉 http 进程来生成 shell。谁知道curl 是否在路径中? echo 是干什么用的?在任何情况下,都不应允许 Web 服务器超出您的组织范围。如果必须,它应该通过内部代理。
      • 在整个页面上都没有提到 laravel 接受你的。 -1
      【解决方案3】:

      试试$_SERVER['SERVER_ADDR']。它将是服务器正在侦听的 IP 地址。您可以使用 DNS 函数(例如,gethostbyaddr())来获取主机名。

      http://www.php.net/manual/en/reserved.variables.server.php

      【讨论】:

        猜你喜欢
        • 2019-10-17
        • 2013-04-24
        • 2020-12-01
        • 2010-11-25
        • 2016-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-03
        相关资源
        最近更新 更多