PHPで接続してきた端末のIPアドレスを引っこ抜く際、Android(4G接続中)では当然4GネットワークのホストとIPアドレスが検出されます。
ここからWi-FiをONにして異なるネットワークに参加して同じPHPページを更新します。するとWi-Fi接続から30秒ほどはWi-Fiでの接続にもかかわらず4GネットワークのIPアドレスとホストが検出されました。
Wi-Fi接続中でも4GのIPアドレスが検出されるときは、AndroidステータスバーのWi-Fiと4Gアイコンがどちらもアクティブになります。
30秒ほど経過すると4Gアイコンが非アクティブ(LTEの文字が消える)になり、Wi-FiネットワークのIPアドレスが検出されるようになりました。
接続の安定性を重視するがためにこのような仕様になっているのでしょうか。
「4GのIPが通知されるのだからWi-FiアイコンがONでも4G通信をしばらく継続するのでは」とも考えましたが、自前の環境はIPアドレスの検出以外に多くの画像・スクリプトリソースが配置されており、4GとWi-Fiでは通信速度にかなりの差が生じているように感じます。Wi-Fiと4Gが同時にアクティブになっている状態では通信に時間がほとんどかからないため、実際にリソースを取りに行っているのはWi-Fiではないかと推測しています。
簡潔にまとめますと
・4GからWi-Fiに切り替えたすぐはWi-Fiで通信しているにもかかわらず4GのIPアドレスが検出される。
・これがOS・端末/ベンダー独自の仕様かわからない
・このような動作に関して記述されている資料があるか
環境
Xperia Z Ultra Android 5.0.2 (画像もXperia Z Ultra)
Chrome
IPアドレスを検出した環境は
・PHP 5.4.39 自前のテスト環境
です。