我在 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.";
请记住,这会使代码执行延迟大约一秒钟;因此您应该缓存结果。