人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

携帯端末からアクセス制限

CGI/perlによる掲示板を設置していますが、書き込むときに携帯端末からの固体識別情報を取得し管理したいと考えています。
当方のレベルに合わせて教えてもらえれば嬉しいです。

1・携帯端末を取得する方法
以下のようなURLを見ましたが根本的な段階で理解が足りなくて・・
端末を取得する方法とそれを書き込むファイル。また新たに作るファイルがあるかなど。

http://tachibana.blog.ocn.ne.jp/blog/2006/05/ez_7a39.html
http://www.ezinfo.jp/php/functions/
http://q.hatena.ne.jp/1176205759

2.携帯端末を取得できなかったときは書き込みを禁止する方法

3・ログ
ここが1番頭を悩ませているのですが(ていうか大きな勘違い?)、サーバに送られてくる「HTTP_USER_AGENT」「HTTP_X_UP_SUBNO」がどこに存在してどうやって確認するか。

4・アクセス制限する方法
(.htaccess設置経験はあるが端末規制の方法は知らない)

きっと不足な環境や項目があると思うので追記します。
(そのときにはこちらが理解できる説明だと助かります)

●質問者: tontonpokopoko
●カテゴリ:ウェブ制作
✍キーワード:.htaccess CGI Perl URL アクセス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●42ポイント

1.読みにくいですが、以下のページにサンプルコードも載ってます。

ケータイの端末識別情報を取得する方法 | モバイル(携帯電話・ケータイ)Web | 阿部辰也のブログ――人生はひまつぶし。

特に読み書きするファイル等は無いです。


2.1の方法で取得できなければ、専用のエラーページを用意してCGI側で出力するだけでは?

unless ( $mobile_id ) {
print <<'__HTML__';
Content-type:text/html

<html>
書き込みが許可されていません。
</html>
__HTML__
}

3.HTTP_USER_AGENT は(管理者が)設定してあれば Web サーバーのログに。

HTTP_X_UP_SUBNO は標準では残りません。

いずれにせよこの場合ログをとりたければ自分でログファイルを作って残したほうがよいかと。

何のためのログかよくわかりませんが。


4.2の方法の応用でアクセス制限してください。

.htacces でもできなくは無いですが、非常に面倒です。

◎質問者からの返答

回答をありがとうございます。

申しわけありません、レベル不足のためもう少し導いてもらえると嬉しいです。

まず1.に関してなのですが・・

例えば以下のフォーム内容でしたらどのような追加コードになるのでしょうか。

とりあえず「utn」だけは足してみたんですが・・

sub form2 {

local($job) = @_;

local($submit);

# クッキー取得

local($cnam,$ceml,$cpwd,$curl,$cmvw) = &get_cookie;

if ($curl eq "") { $curl = "http://"; }

$user=$ENV{'HTTP_USER_AGENT'};

if ( $user =~/DoCoMo/ ) { $mobile='post'; } else { $mobile='get'; }

print <<"EOM";

<form action="$registcgi" method="$mobile" name="myFORM" utn>

<input type=hidden name=mode value="regist">

名前

<input type=text name=name size=15 value="$cnam" maxlength=20>

タイトル

<input type=text name=sub size=20 value="$resub" maxlength=20>

EOM

if ($job eq "new") {

$submit = 'スレッドを生成';

} else {

$submit = ' 返信する ';

print "<input type=hidden name=res value=\"$in{'no'}\">\n";

print "<input type=\"checkbox\" name=\"sort\" value=\"1\" checked>";

print "スレッドをトップへソ\ート
\n";

}

print <<"EOM";

メッセージ

<textarea name=comment cols=20 rows=5 wrap=soft></textarea>

EOM

print <<EOM;</p>

<input type=submit value="$submit">

</form>


EOM

}


2 ● ffmpeg
●28ポイント

http://www.core-p.com/cgi-search/bbs/bbs.cgi?mode=view&no=35

◎質問者からの返答

参考ページのリンクの2つですが・・

上のリンクは解決できると思いますが、現状の掲示板で対応させたいと考えています。

下のリンクはスクリプトが古すぎるようです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ