Perlで携帯電話の製造番号を取得する方法

このQ&Aのポイント
  • Perlで携帯電話の製造番号を取得するスクリプトを作成しています。docomo、au、ソフトバンクのみで取得し、iPhoneやイーモバイルは取得しないようにしています。携帯電話でアクセスした人の本人確認には製造番号を使用し、画面のカスタマイズを可能にするサイトを作ろうとしています。
  • スクリプトでは、ソフトバンクの場合は「HTTP_X_JPHONE_UID」を、auの場合は「HTTP_X_UP_SUBNO」を、docomoの場合は「HTTP_USER_AGENT」の中から「ser」を検索して製造番号を取得しています。取得した製造番号を表示することで、本人確認ができるようにしています。
  • このサイトは1ヶ月程度の期間だけオープンする予定であり、金銭的な絡みや個人情報の取得は行わないため、携帯電話の所有者が変わった場合でも問題はありません。
回答を見る
  • ベストアンサー

Perlで携帯電話の製造番号を取得

Perlで携帯電話の製造番号を取得 Perlで携帯電話の製造番号を取得するスクリプトを作っています。 docomoのD905iしか持っておらず、他の携帯での動作確認ができません。 以下のスクリプトで正しいでしょうか? 以下のスクリプトで、他にやっておいたほうがよい事など、 何かアドバイスがありましたらお願いします。 やりたいことは、 docomo、au、ソフトバンクのみで取得する。 iPhone、イーモバイルは取得しない。 古い携帯電話で取得できないものは切り捨てる。 携帯電話でアクセスした人が、それぞれに画面をカスタマイズでき、 次回アクセスしたときも同じ画面が表示されるようなサイトを作ろうとしています。 普通はクッキーで本人確認するのだと思いますが、携帯電話ではクッキーが 無いので、代わりに製造番号を使って本人確認しようと考えています。 1ヶ月くらいだけオープンするサイトであり、金銭的な絡みも個人情報も無いので、 携帯電話の所有者が変わったときの問題は無いと思っています。 ■ HTML <a href="./test.cgi" utn>製造番号取得</a> ■ Perl #--ソフトバンク if($ENV{'HTTP_X_JPHONE_UID'} ne ''){ $uid = $ENV{'HTTP_X_JPHONE_UID'}; } #--au elsif($ENV{'HTTP_X_UP_SUBNO'} ne ''){ $uid = $ENV{'HTTP_X_UP_SUBNO'}; } #docomo else{ $agent = $ENV{'HTTP_USER_AGENT'}; $ser_index = index($agent,'ser'); if ($ser_index != -1) { $uid = substr($agent,$ser_index+3); } } print"製造番号:$uid<br>\n"; 以上、よろしくお願いします。

  • ps5550
  • お礼率65% (129/196)
  • Perl
  • 回答数1
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • MOMON12345
  • ベストアンサー率32% (1125/3490)
回答No.1

ドコモはUAの中にIDは入ってきません。 以下を参考に。 http://www.maido3.com/server/script/guid-docomo.html

ps5550
質問者

お礼

ありがとうございます。 製造番号の代わりにiモードIDというのができたのですね。知らなかったです。 iモードIDは、毎回「製造番号を送信してよろしいですか?」の確認が表示されないので、良いですね。 docomoの部分を修正しました。 ■ HTML <a href="./test.cgi?guid=ON">製造番号取得</a><br><br> ■ Perl #--ソフトバンク if($ENV{'HTTP_X_JPHONE_UID'} ne ''){ $uid = $ENV{'HTTP_X_JPHONE_UID'}; } #--au elsif($ENV{'HTTP_X_UP_SUBNO'} ne ''){ $uid = $ENV{'HTTP_X_UP_SUBNO'}; } #docomo elsif($ENV{'HTTP_X_DCMGUID'} ne ''){ $uid = $ENV{'HTTP_X_DCMGUID'}; } print"製造番号:$uid<br>\n";

関連するQ&A

  • ソフトバンク携帯のuidについて

    Softbank携帯のuidは ENV{HTTP_X_JPHONE_UID}で取得可能とネットで見たので $sbuid=$ENV{'HTTP_X_JPHONE_UID'} と記述してみたのですが、識別番号を取得できません。 同じようにauの識別番号を取得できるように $auid=$ENV{'HTTP_X_UP_SUBNO'} としてあるのですが、こちらは取得できています。 なぜソフトバンクの方は取得できないのでしょうか?

  • 書き方を教えてください

    まだ初心者なのですが、 if($ENV{'HTTP_USER_AGENT'} =~ /UP.Browser/) { unless($ENV{'HTTP_X_UP_SUBNO'} =~ /.ezweb.ne\.jp$/) { push(@error, '番号を通知して下さい。'); } } という構文を作りました。 ($ENV{'HTTP_X_UP_SUBNO'} =~ /.ezweb.ne\.jp$/) もしくは unless($ENV{'HTTP_USER_AGENT'} =~ /SN/) の時に push(@error, '番号を通知して下さい。'); と言うように書きたいのですが、どう書いて良いかわかりません。 どなたか教えてください。

    • ベストアンサー
    • Perl
  • このコードの使い方は間違ってますか??

    $id = $_SERVER['HTTP_USER_AGENT']; if(strstr($id, "DoCoMo")){ $uid = $_SERVER['HTTP_X_DCMGUID']; echo "$uid"; }else if(strstr($id, "J-PHONE|Vodafone|SoftBank")){ $uid = $_SERVER['HTTP_X_JPHONE_UID']; echo "$uid"; }else if(strstr($id, "KDDI")){ $uid = $_SERVER['HTTP_X_UP_SUBNO']; } 固体識別情報を取得するコードです。 他サイトでstrstr()の使い方が間違えてると言われましたが、どう間違えてますか??

    • ベストアンサー
    • PHP
  • 携帯から・・・

    質問させて下さい。 今携帯電話用のホームページを作成しています。 J-PHONE(VODAFONE)用でアクセスユーザのUIDを 取得するのは$HTTP_X_JPHONE_UIDで取得できたので すが、 EZの場合はどのように取得すればいいのでしょうか? ちなみにPHP4です。 宜しくお願い致します。

    • 締切済み
    • PHP
  • 携帯電話の機種名

    携帯電話の機種名を掲示板に表示したいのですが、どなたかご教示いただけませんでしょうか? $ENV{'HTTP_USER_AGENT'}で取得できるのですが、機種名だけを抜き出す方法がわかりません。 宜しくお願い致します。

  • iモード用ASPで電話番号を取得可能か

    iモード用のASPで、接続している携帯電話の電話番号か機体番号を取得することは可能でしょうか? 認証に使いたいのです。 HTTP_USER_AGENT情報で機体番号を取得できるということを聞いたのですが、具体的な方法がわかりません。 関連情報について何かご存知でしたら、教えていただけないでしょうか?

  • ソフトバンクも対応したい!

    CGIで携帯サイトを構築しています。こちらのサイトで配布されている 携帯電話から送信される固有の情報を照合し簡単ログインさせる方法で構築していますが、ソフトバンクやウィルコムなど新しい情報に対応していなく、困っています。対応した改造方法をアドバイス願います。 また、配布先サイトBBSでもサポートはしていないのでここでお願いしました。 http://www.rescue.ne.jp/cgi/keitai_login/ cert.cgiファイルの中 $UA = $ENV{'HTTP_USER_AGENT'}; $SN = $ENV{'HTTP_X_UP_SUBNO'}; # サブスクライバID(ezWEB) if (($UA =~ 'UP.B') && ($SN ne "")) { $ua = "ezweb"; if ($ENV{'HTTP_X_UP_DEVCAP_MULTIMEDIA'}) { $ua = "ezweb2"; } # WAP2.0対応機種 $UID = $SN; } elsif ($UA =~ /^DoCoMo\/\d/) { $ua = "imode"; if ($UA =~ /ser(\w{15})/) { $UID = $1; } # <foma> DoCoMo/2.0 N2001(c10;serXXXXXXXXXXXXXXX; iccxxxxxxxxxxxxxxxxxxxx) elsif ($UA =~ /ser(\w{11})/) { $UID = $1; } # <mova> DoCoMo/1.0/X503i/c10/serNMAIA000001 } elsif ($UA =~ /^J-PHONE\/\d/) { $ua = "j-sky"; if ($UA =~ /.*\/.*\/.*\/SN(\w+)\s/) { $UID = $1; } # パケット対応機 J-PHONE/4.0/J-SH51/SN************ SH/0001a Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.0 } else { $ua = 0; }

  • 各携帯電話の製造番号は唯一でしょうか

    各携帯電話の製造番号は唯一でしょうか ネットオークションで携帯電話を購入しようと検討しているのですが、 ある出品者の出品物に、複数の同じ型番の携帯電話機の製造番号は同じです。 ここでお聞きしたいのですが、 複数の携帯電話端末の製造番号が同じであることは有り得るでしょうか。

  • 携帯電話製造番号って;

    携帯を持ち初めて4ヶ月目の者です>< 携帯電話製造番号ってので質問があります; 1月からパケホーダイにしてもらって、よく友達のHPやブログを見に行きます。 で、友達のHP見ようとしたら、携帯端末情報を送信してくださいって のになってこんなのがでてきます><↓ [携帯電話/FOMAカード(UIM)の製造番号を送信します] YES NO? これなんですけどYESを押したらHPにいける・・・ けどYESを押してしまったら相手に電話番号がばれたり誰がHPみてるかわかるので しょうか?(相手が此方の番号とか誰とかわかるの><?) とりまそこらへん教えてください>< お願いします><!

  •  予約システムを構築しております。レベルは日曜プログラマーから漸く脱し

     予約システムを構築しております。レベルは日曜プログラマーから漸く脱した程度です。携帯を識別してデータベースに値を書き込み、そのIDを用いて予約したり取消したり、簡単ログインしようと思っております。PCからのアクセスは、問題なく動くようになりました。 携帯の識別番号を得るところで躓いています。  環境は、 サーバPC XP xampp 1.7.1 (PHP5.2.5 Apache2.0 MYSQL5.0 ) ブラウザ FF 3.5.8 携帯は 812sh (ソフトバンク)とドコモのムーバ(比較的新しい、機種不明)  利用関数のソースコードは以下のようなものです。 function getUid(){   $agent = Net_UserAgent_Mobile::singleton();   if ($agent->isDoCoMo()) {     //$uid=$agent->getUserAgent();     $uid = $_SERVER['HTTP_X_DCMGUID'];   } elseif ($agent->isVodafone()) {     //$uid=$agent->getUserAgent();     $uid = $_SERVER['HTTP_X_JPHONE_UID']; 尚、DOCOMOの場合、SSL通信にては不可とのことでしので、SSLをやめましたが取得できません。 また、ソフトバンクでは、コメントアウトした$uidを、取得できます。 print("uid=$uid\n"); の結果は、 uid= 結果が得られていないようです。 エラー表示等は出ません。(自分で書いたエラー表示だけです 「uidが無いならエラー」) ソフトバンクについては、コメントアウトした$uidは $uid= SoftBank/1.0/812SH/SHJ001/SN9999999........ (FFでアクセスしましたが、携帯でも得られます) と得られております。 ウェブで色々検索してみましたが、解決しません。 尚、質問に不慣れですので、どのような情報が必要なのか、わかりませんので、補足してゆきます。足りない点があればご指摘ください、よろしくお願いいたします。  

    • ベストアンサー
    • PHP