Home > Analog6.0改造

Analog6.0改造


  • Posted by: F&F
  • 2009年12月 4日 11:34

アクセス解析のAnalog6.0を少しいじった。
OS判定の所に日本の携帯電話やゲーム機のものを加えたのだ。

Sourceはtree.cで、中を見れば特に説明の必要もないだろう。
もしかしたらUserAgent判定に誤りがあるかも。
Analog6.0に追加したのはGameカテゴリのPSPやDS-i、Wiiなど、Mobileカテゴリでi-modeやEZ-webなどの判定だ。
結構雑なので判定間違いなども起きやすいしUA偽装だと簡単に間違えてくれるのはドメイン名とのマッチングを見ていないので仕方がない。
RSSリーダ系も分離するようにしたが、OS判定できないものもあるというかサーバが取りに来ている場合はOS表示されない。
このようなものはその他に分類されるのでその他が増えてしまう。

他にWindowsVistaやWindows7の判定を加えたり、出力コードをUTFにして検索文字列化けをなおしたりした。
でもWindowsはバージョン分けしていてMACはしないのかな?Unixはどうなのかな?なんて。
これも判断を追加すればいくらでも細分化できるのだが、面倒なことだ。
それにロボットなどはUA偽装でやってくるのでおかしなバージョンのWindowsと判定されることもある。
http://www.fnf.jp/analog/analog.html#os

  else if (strstr(whole, "WebTV") != NULL)
   *name = "WebTV";
  else if (strstr(whole, "OS/2") != NULL)
   *name = "OS/2";
  else if (strstr(whole, "BeOS") != NULL)
   *name = "BeOS";
  else if (strstr(whole, "RISC OS") != NULL)
   *name = "RISC OS";
  else if (strstr(whole, "Amiga")  != NULL)
   *name = "Game:Amiga";
  else if (strstr(whole, "Nitro")  != NULL)
   *name = "Game:DS-i";
  else if (strstr(whole, "Nintendo Wii") != NULL)
   *name = "Game:Wii";
  else if (strstr(whole, "PLAYSTATION") != NULL)
   *name = "Game:PS3";
  else if (strstr(whole, "PlayStation") != NULL)
   *name = "Game:PSP";
  else if (strstr(whole, "Xbox") != NULL)
   *name = "Game:XBOX360";
  else if (strstr(whole, "Symbian") != NULL)
   *name = "Mobile:Symbian OS";
  else if (strstr(whole, "PalmOS") != NULL ||
       strstr(whole, "PalmSource") != NULL)
   *name = "Mobile:Palm OS";
  else if (strstr(whole, "Atari") != NULL)
   *name = "Game:Atari";
  else if (strstr(whole, "UP.Browser") != NULL)
   *name = "Mobile:EZ Web";
  else if (strstr(whole, "DoCoMo") != NULL)
   *name = "Mobile:i-mode";
  else if (strstr(whole, "J-PHONE") != NULL ||
       strstr(whole, "Vodafone") !=NULL ||
       strstr(whole, "SoftBank") !=NULL)
   *name = "Mobile:Y!";
  else if (strstr(whole, "iPhone") !=NULL)
   *name = "Mobile:iPhone";
  else if (strstr(whole, "PDXGW") != NULL  ||
       strstr(whole, "WILLCOM") !=NULL ||
       strstr(whole, "DDIPOCKET") !=NULL)
   *name = "Mobile:WILLCOM";
  else if (strstr(whole, "ASTEL") != NULL)
   *name = "Mobile:Dot-i";
  else
   *name = "OS unknown";

   

Comments:0

コメント投稿には JavaScript が必要です。ブラウザのJavaScript 機能を有効にしてください。

サインインしなくてもコメントの投稿は出来ます。
サインインしている場合はお名前などを入力せずに、そのまま投稿できます。

登録は簡単&それによって何かが起きるわけではないのでお気軽にどうぞ。
登録ページ書き込み→確認メール送信→確認メールのURLクリックで承認、の手順です。
確認メールに書かれたURLにアクセスしないと登録は完了せず、正しいログイン状態に移行できません。
コメント フォーム
コメント投稿完了までには少し時間がかかります。
二重投稿にご注意下さい。

Home > Analog6.0改造



VC