SoftBank スマートフォン・iPhoneのIPアドレス帯域追加

2016/10/01に、SoftBankスマートフォンiPhoneIPアドレス帯域が追加されます。

各キャリアのIPアドレス帯域一覧テキストファイルの形式を変更

以前より公開している audocomoSoftBankY!mobileIPアドレス帯域一覧テキストファイルの形式を一部変更&新たなファイルを作成しました。
以下変更箇所です。

  1. maskのバイナリ値を行末尾に追加
  2. i-modeだけ、mail用が最初に来ていたのでWebの後に変更
  3. Web/Mail/PCVを別ファイルにしたものを作成開始
  4. KDDIスマートフォンの(Web)IPアドレス帯域を追加
  5. 各タイトルに、ソースURLを追記
  6. コメント行の行頭にある「#」記号の後ろに半角空白を挿入

大きい変更は、maskのバイナリ値を追加したことと、Web/Mail/PCVを別ファイルにしたものも作成するようにしたことです。
また、auezweb)については、2011年秋冬モデル以降の機種分についてはさらに別ファイル(ezweb_web_ip2.txt)にしています。

SoftBankスマートフォン/iPhone

上記ファイルはタブ区切りのテキストファイルで、全て

[IP/MASK]\t[IP]\t[MASK]\t[IP(Binary)]\t[MASK(Binary)]\n

の形式で1行につき1つの帯域が記載されています。

たとえばWebサイトにアクセスしてきた docomoケータイが、公表されたIPアドレス帯域内であるかどうかを調べるには、

sub is_real_docomo_keitai
{
  my $is_real_ip = 0;

  my $ip_file = 'imode_web_ip-compact.txt';

  my $addr_bin = sprintf "%08b"x4, split /\./, $ENV{REMOTE_ADDR};

  open ( IPF, $ip_file ) or die("can't open file: $!");
  while ( <IPF> ) {
    next if ( /^#/ );
    next if ( /^\n$/ );
    chomp;
    my ($ipmask, $ip, $mask, $ip_bin, $mask_bin) = split( /\t/ );
    my $network_bin = $mask_bin & $addr_bin;
    if ( $ip eq &get_network_address($network_bin) ) {
      $is_real_ip = 1;
      last;
    }
  }
  close ( IPF );

  return $is_real_ip;
}

sub get_network_address
{
  my $ip_bin = shift;
  return join '.', map { oct "0b$_" } $ip_bin=~/(\d{8})(\d{8})(\d{8})(\d{8})/;
}

のように調べます。


ところでスマートフォンIPアドレス帯域をチェックすることって実際あるんでしょうか?

auスマートフォンのIPアドレス帯域

au Android技術情報 グローバルIPアドレス
上記を把握していなかったので、登録。

IS NET/LTE NET (スマートフォン/タブレット/4G LTE ケータイ) で使用しているグローバルアドレスは以下となります (2016年8月現在)。
106.128.0.0/13 (注1)
111.86.140.128/27
182.248.112.128/26
182.249.0.0/16
182.250.0.0/15
注1) 以下のアドレスを除く
106.135.0.0/16

106.128.0.0/13(106.128.0.0 - 106.135.255.255)から、106.135.0.0/16(106.135.0.0 - 106.135.255.255)を除く、ということは、以下のようになるんですよね。

  • 106.128.0.0/14 (106.128.0.0 - 106.131.255.255)
  • 106.132.0.0/15 (106.132.0.0 - 106.133.255.255)
  • 106.134.0.0/16 (106.134.0.0 - 106.134.255.255)

間違っていたら誰か教えてください。

SoftBank スマートフォン・iPhoneのIPアドレス帯域追加

2016/09/01に、SoftBankスマートフォンiPhoneIPアドレス帯域が追加されます。

スマートフォン

IPアドレスについて | SoftBankスマートフォンサービス開発支援サイト
以下の3件を追加

  • 126.212.176.0/20
  • 126.212.236.0/22
  • 126.212.252.0/22

iPhoneで「lang="ja"」有りと無しで絵文字の表示が異なる

Unicodeの絵文字を調べていて、面白い事象を発見した。
私が所持しているのがiPhone5Sなので、新しいiPhoneでは発生しないのかもしれませんが、自分としてはかなり衝撃でしたので記録しておきます。

iPhoneで、htmlファイルを

<html lang="ja">
と書くと、一部の絵文字がテキストモードで表示されます。
「lang="ja"」を外せば絵文字モードで表示されます。

テキストモードと絵文字モードは、UnicodeEmoji variation sequences によって定義されているもので、「晴れ」絵文字なら、絵文字コード(&#x2600;)の後ろに「&#xFE0E;」がつけばテキストモードに、

&#x2600;&#xFE0E;

文字コードの後ろに「&#xFE0F;」がつけば絵文字モードとなる。

&#x2600;&#xFE0F;

では何もつけなかった場合はどうなるかと言うと、タイトルの通り、私のiPhone5Sでは「lang="ja"」有りと無しで絵文字の表示が異なる。

lang="ja"有り

<html lang="ja">
<body>
<p>&#x2600;</p>
</body>
</html>



lang="ja"無し

<html>
<body>
<p>&#x2600;</p>
</body>
</html>


lang="ja"を外せば解決するのですが、何か腑に落ちない感じです。

それじゃ、lang="en"ではどうかと言うと、

lang="en"

<html lang="en">
<body>
<p>&#x2600;</p>
</body>
</html>


な、なんじゃ こりゃー💢

SoftBankスマートフォンのIPアドレス帯域追加

Web技術情報 | SoftBank スマートフォン サービス開発支援サイト | ソフトバンク

2016/07/01 以下の3件を追加

  • 126.212.160.0/20
  • 126.212.232.0/22
  • 126.212.248.0/22

2016/08/01 以下の3件を追加

  • 126.211.48.0/20
  • 126.211.108.0/22
  • 126.211.124.0/22

http://www.wap2.jp/download/ip/softbank_sp_ip.txt