我运行 MAMP 来做本地 wordpress 开发,出于各种原因,我需要通过类似 http://192.162.1.99:8888
而不是http://localhost:8888
来访问网站。在我自己的连接上,这通常不是问题,因为我总是使用相同的 IP 连接。但是,当外出时,我必须弄乱并更改各种常量以反映我使用该路由器的IP。
那么有没有一种使用PHP的技术可以确定这个DHCP地址呢?$_SERVER
中的任何内容都不会返回此地址,['SERVER_ADDR']
&['REMOTE_ADDR']
包含::1
,['HTTP_HOST']
包含localhost:8888
。
可能不是最干净的解决方案,但如果您运行的是 Linux/Unix,您可以在脚本中运行以下 php 系统调用。 我还没有测试过它,但我相信它会在变量中为您提供正确的 IP。 请记住使用系统的实际以太网/无线适配器名称切换 en1。 您可能还需要使用 ifconfig 命令的确切路径。
$ipAddress = system('ifconfig en1 | grep inet | cut -d" " -f2' , $returnVal);
抱歉,如果变量名不在 php 标准中,这些天我通常用 Java 开发。
建立在
Lipongo之前的答案之上;如果设备名已知,这将在没有 ifconfig 的系统上工作:
$dev = 'eth1';
$ip4 = exec('ip addr show '.$dev.' | grep -oP "(?<=inet ).+(?=/)"');
$ip6 = exec('ip addr show '.$dev.' | grep -oP "(?<=inet6 ).+(?=/)"');