![Web 服务器 网页上可以看到公网 IP 地址](https://linux22.com/image/1431692/Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%20%E7%BD%91%E9%A1%B5%E4%B8%8A%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%E5%85%AC%E7%BD%91%20IP%20%E5%9C%B0%E5%9D%80.png)
我在 NAT 后面有一台 Raspberry Pi,运行 Linux 并托管一个 Web 服务器。我通过 Yaler 实用程序从外部访问网页,因为我有动态公共 IP 地址。有没有办法在网页上显示我当前的公共 IP 地址?如果我获得我的公共 IP 地址,我就可以访问该网络中的许多 NAT 设备。Yaler 域无法解析我的实际公共 IP 地址。
答案1
无论哪种方式,您都需要一些简单的脚本来实现这一点。
一个简单的例子是使用 DNS 查找。
如果您不能使用该host
命令,请使用 安装它sudo apt-get install host
。
然后只需运行命令host -t a your.public.domain
。这将导致如下结果:
your.public.domain 的地址为 12.34.56.78
您只需解析结果,例如在 PHP 中,您可以使用如下内容:
<?php
$ip = 'unknown';
if (preg_match('/has address (\d+\.\d+\.\d+\.\d+)/', exec('host -t a your.public.domain'), $m))
$ip = $m[1];
echo "The public IP is $ip.";
请记住,这会使代码执行延迟大约一秒钟;因此您应该缓存结果。