获取连接到路由器的DHCP地址


get DHCP address of connection to router

我运行 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 ).+(?=/)"');