tana_ash's diary

プログラミングや電子工作など。やってみたこと、わかったことをまとめておく場所。

AndroidテザリングとIPアドレスの謎

現在使用しているAndroid端末にはテザリング機能が搭載されています。
ふと思いついたアプリを実装するため、テザリング時のIPアドレスについて調べています。
今回は、その動作について書いていくことにしました。
使用した端末はOptimus LTE(L-01D)、キャリアはdocomoです。
ネットワークについては詳しくないので、勘違いがあるかもしれません。また、機種によって違った動作をする可能性もあります。
他の端末については確認ができないので、現在情報を求めている状況です。

はじめに

ここで書いている「テザリング」とは、全てWiFiテザリングのことです。
今回は、「ネットワークインターフェースを列挙し、出てきたものの中からループバック(localhost)でないものを出し、インターフェース名とIPアドレスを表示」という動作を行うアプリを作成しました。
まず、Androidのテザリングの動作について気づいたことをいくつか書いておきます。
Androidはテザリング中、WiFiが切断されます。そのため、携帯回線が必須になります。
また、テザリングでAndroidを通して接続した端末(PCや他スマホ等)は、IPアドレスの3つめの部分まで(aaa.bbb.ccc.dddのaaaからcccの部分まで)が端末と同じIPアドレスが割り振られます。

通常時のIPアドレス

テザリングが動作せず、普通に携帯回線に接続されている時は、
「rmnet_sdio0」という名前で、キャリアから割り振られたキャリアのNATの中のプライベートIPアドレスが割り振られます。
ここまでは想像した通りでした。

テザリング時のIPアドレス

ここからが本番です。これから動作が若干よくわからない状態になります。
テザリングを動作させている間は、通常時は存在した「rmnet_sdio0」が消滅します。
そして、「wl0.1」という名前で、「はじめに」でも書いた、3つめの部分までが接続されたPCなどと同じになったIPアドレスが出現します。
「wl0.1」は、「192.168.43.1」というIPを持っていて、PCは「192.168.43.何とか」というIPを持っています。

この動作は他の端末でも同じなのでしょうか。誰か知っている方がいらっしゃいましたら情報をお願いします。