コンピュータがネットワーク上にあるときに、そのコンピュータの IP アドレスを見つけるのに助けが必要です。さまざまな場所に配置されるキオスク タイプのシステムを構築しています。Web ブラウザを使用して、ローカル ネットワーク上のそのコンピュータの IP アドレスを見つける必要があります。
使用する$_SERVER['SERVER_ADDR']
と、そのマシンのローカルブラウザー (127.0.0.1) を介して接続している IP アドレスを取得します。
ユニットがルーターの背後にある可能性があり、ルーターのパブリック IP アドレスが必要ないため、呼び出してパブリック IP を取得できません。
サーバー上のそのボックスの IP アドレスを見つける必要があります (例: 192.168.0.xxx)
端末から「ip addr show」を実行すると、
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 61:a6:4d:63:a2:80 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.211/24 brd 192.168.0.255 scope global em1
inet6 fe80::62a4:4cff:fe64:a399/64 scope link
valid_lft forever preferred_lft forever
私がしようとすると:
$command="ip addr show";
$localIP = exec ($command);
$localIP
「valid_lft forever preferred_lft forever」で出てきますが、他の情報はありません。すべてを取得できれば$localIP
、inet IP アドレスを除外できますが、すべてが得られるわけではありません。
これを行う簡単な方法や、「ip addr show」コマンドを実行しようとしたときに欠けているものはありますか? また、ユーザー apache で実行しているため、このアプリケーションのルートとしてこれを実行できません。