<ブラウザ(端末情報)をGetする> こんにちは、Ken3です。 今回は、 訪問したユーザーのブラウザ(端末情報)を表示 して、遊びたいと思います。 /* * 1.訪問したユーザーのブラウザ(端末情報)を表示する */ 自分のHPへどんな人が来てくれたのか知りたくないですか? えっ、気にならないって? それだと、話しが終わってしまうので、付き合ってくださいよ(笑) 単純に書くと、 Request.ServerVariables(項目名) とやると、いろいろな値が取れます。 今、私がほしい、訪問者の情報としては、 IPアドレス、アクセスした端末の情報なんかがほしいなぁ、、、 と心の中で願っても誰も助けてくれないので、 本やネットなどで調べてみると、 Request.ServerVariables("REMOTE_ADDR")で、IPアドレス Request.ServerVariables("HTTP_USER_AGENT")で、端末の情報 がGetできるみたいです。 簡単なテストプログラムを書いてみました。 <%@LANGUAGE=VBScript%> <html> <head> <title>訪問したユーザーのブラウザ(端末情報)を表示する</title> </head> <body> <h2>訪問したユーザーのブラウザ(端末情報)を表示する</h2> test007-1.asp<br> <hr> 簡単にテストすると、<br> Request.ServerVariables("HTTP_USER_AGENT")は、 <%=Request.ServerVariables("HTTP_USER_AGENT")%> <br> Request.ServerVariables("REMOTE_ADDR")は、 <%=Request.ServerVariables("REMOTE_ADDR")%> <hr> 終了です。<br> どんな感じでした? </body> </html> http://www.ken3.org/cgi-bin/test/test007-1.asp でテストできます。 自分のマシーンでテストすると、 訪問したユーザーのブラウザ(端末情報)を表示する test007-1.asp -------------------------------------------------------------------------- 簡単にテストすると、 Request.ServerVariables("HTTP_USER_AGENT")は、 Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Request.ServerVariables("REMOTE_ADDR")は、 202.217.96.222 -------------------------------------------------------------------------- 終了です。 どんな感じでした? と画面に表示されます。 まぁ、テストとしては、OKかなぁ。 Request.ServerVariables("HTTP_USER_AGENT") Request.ServerVariables("REMOTE_ADDR") 使ってみようかな。 -- 蛇足な解説 -- IPドメインSEARCH http://www.mse.co.jp/ip_domain/ で 202.217.96.222 を検索すると、 あなたが検索されたアドレス[ 202.217.96.222 ]のJPNICからの応答は以下の通りです。 Network Information: [ネットワーク情報] a. [IPネットワークアドレス] 202.217.96.0-202.217.127.0 b. [ネットワーク名] MBN f. [組織名] ドリームネット株式会社 g. [Organization] DreamNet Corporation m. [運用責任者] SM1912JP n. [技術連絡担当者] KK1341JP p. [ネームサーバ] ns.mbn.or.jp p. [ネームサーバ] ns2.mbn.or.jp [割当年月日] 1996/03/08 [最終更新] 2001/04/23 11:47:26 (JST) と、IPアドレスから登録データを検索することができます。 ファイルなどに保存しておけば 常連さんはどんな人? 使用しているブラウザの種類 などを少し探ることが出来るかなぁ。 まぁ、そんなにヒマじゃないんだろうけどね。 *実際は掲示板の荒らし行為や何かあった時しか調べないと思うけど。 /* * 2.他に取得可能な値を見てみたい。 */ Request.ServerVariables("HTTP_USER_AGENT") Request.ServerVariables("REMOTE_ADDR") で値の取得は、なんとなくわかったけど、 そのほかにどんなの?あるの? う〜ん、私もよくわからないので、 For Each でServerVariables の名前を 表示してみました。 <%@LANGUAGE=VBScript%> <html> <head> <title>For Each でServerVariablesを表示してみる</title> </head> <body> <h2>For Each でServerVariablesの項目を表示してみる</h2> test007-2.asp<br> <hr> どんな項目が存在するのかチェックするために、<br> For Each でServerVariablesの項目を表示してみました。<br> <% 'ここからスクリプト For Each objSV In Request.ServerVariables 'For Each でループ Response.Write "<P>" & objSV & "↓<br>" '名前を表示 Response.Write Request.ServerVariables(objSV) '中身を表示 Next %> <hr> 終了です。<br> どんな感じでした? </body> </html> For Each objSV In Request.ServerVariables で オブジェクトの中をサーチして、 そのまま、 Response.Write "<P>" & objSV & "↓<br>" '名前を表示 Response.Write Request.ServerVariables(objSV) '中身を表示 で、項目名と中身を表示してます。 http://www.ken3.org/cgi-bin/test/test007-2.asp をテストすると下記のようになります。テスト結果は、(長いです) For Each でServerVariablesの項目を表示してみる test007-2.asp ---------------------------------------------------------------------------- どんな項目が存在するのかチェックするために、 For Each でServerVariablesの項目を表示してみました。 ALL_HTTP↓ HTTP_ACCEPT:*/* HTTP_ACCEPT_LANGUAGE:ja HTTP_CONNECTION:Keep-Alive HTTP_HOST:www.ken3.org HTTP_USER_AGENT:Mozilla/4.0 (compatible; M SIE 6.0; Windows 98) HTTP_COOKIE:ASPSESSIONIDSSQSSDAT=NJMAKNPAEBAP MCGKHBMOOIMG HTTP_ACCEPT_ENCODING:gzip, deflate ALL_RAW↓ Accept: */* Accept-Language: ja Connection: Keep-Alive Host: www.k en3.org User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Cookie: ASPSESSIONIDSSQSSDAT=NJMAKNPAEBAPMCGKHBMOOIMG Accept-Enco ding: gzip, deflate APPL_MD_PATH↓ /LM/W3SVC/173/Root APPL_PHYSICAL_PATH↓ d:\users\ken3_org\ AUTH_PASSWORD↓ AUTH_TYPE↓ AUTH_USER↓ CERT_COOKIE↓ CERT_FLAGS↓ CERT_ISSUER↓ CERT_KEYSIZE↓ CERT_SECRETKEYSIZE↓ CERT_SERIALNUMBER↓ CERT_SERVER_ISSUER↓ CERT_SERVER_SUBJECT↓ CERT_SUBJECT↓ CONTENT_LENGTH↓ 0 CONTENT_TYPE↓ GATEWAY_INTERFACE↓ CGI/1.1 HTTPS↓ off HTTPS_KEYSIZE↓ HTTPS_SECRETKEYSIZE↓ HTTPS_SERVER_ISSUER↓ HTTPS_SERVER_SUBJECT↓ INSTANCE_ID↓ 173 INSTANCE_META_PATH↓ /LM/W3SVC/173 LOCAL_ADDR↓ 210.169.90.5 LOGON_USER↓ PATH_INFO↓ /cgi-bin/test/test007-2.asp PATH_TRANSLATED↓ d:\users\ken3_org\cgi-bin\test\test007-2.asp QUERY_STRING↓ REMOTE_ADDR↓ 202.217.96.90 REMOTE_HOST↓ 202.217.96.90 REMOTE_USER↓ REQUEST_METHOD↓ GET SCRIPT_NAME↓ /cgi-bin/test/test007-2.asp SERVER_NAME↓ www.ken3.org SERVER_PORT↓ 80 SERVER_PORT_SECURE↓ 0 SERVER_PROTOCOL↓ HTTP/1.1 SERVER_SOFTWARE↓ Microsoft-IIS/5.0 URL↓ /cgi-bin/test/test007-2.asp HTTP_ACCEPT↓ */* HTTP_ACCEPT_LANGUAGE↓ ja HTTP_CONNECTION↓ Keep-Alive HTTP_HOST↓ www.ken3.org HTTP_USER_AGENT↓ Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) HTTP_COOKIE↓ ASPSESSIONIDSSQSSDAT=NJMAKNPAEBAPMCGKHBMOOIMG HTTP_ACCEPT_ENCODING↓ gzip, deflate ---------------------------------------------------------------------------- 終了です。 どんな感じでした? 長過ぎ、ここまで、ついてきたマジメな読者さん、どれくらい居るのだろう? 少し心配になってきた(笑) よく見ると、データが入っていない項目とかあります。 使えそうな項目は、 Request.ServerVariables("項目名") で 使ってみてください。 /* * 3.テキストファイルにIPアドレスを書き込む */ あたりまえの話ですが、 ユーザーに表示させただけでは、何も残らないので、 私が知るために、テキストファイルに書いてみたいと思います。 アクセスされた時刻とユーザーのIPとブラウザの種類を http://www.ken3.org/cgi-bin/test/test007.txt に保存してみたいと思います。 http://www.ken3.org/cgi-bin/test/test007-3.asp を実行すると、 test007.txt に追記されます。 *みんなに公開しているのでIPアドレスが固定の常時接続の人や 会社などからアクセスする人は証拠が残るので(ほかの人も見れるので) 注意して実行してみてください。 あっ、ソースの解説忘れた(笑) ASPのソースを下記に載せます。 <%@LANGUAGE=VBScript%> <html> <head> <title>テキストファイルにIPアドレスを書き込む</title> </head> <body> <h2>テキストファイルにIPアドレスを書き込む</h2> test007-3.asp<br> <hr> <% '*1 FileSystemObjectを生成します、、って英文、そのままジャン。 Set objFS = Server.CreateObject("Scripting.FileSystemObject") '*2 test007.txt を追加モードで開く Set ts = objFS.OpenTextFile(Server.MapPath("test007.txt"), 8, True) '*3ファイルにデータを書き込む ts.write "test007-3.asp アクセス時刻は、" & Now & " , " '時刻を書く ts.write Request.ServerVariables("REMOTE_ADDR") & " , " 'IPアドレス ts.write Request.ServerVariables("HTTP_USER_AGENT") 'ブラウザ情報 ts.write chr(13) & chr(10) '*4使ったファイルは閉じようよ ts.close %> <hr> 書き込み終了です。<br> <A HREF="test007.txt">結果のtest007.txtを見る</A><br> </body> </html> 前回解説したファイルの書き込みに、 ts.write Request.ServerVariables("REMOTE_ADDR") & " , " 'IPアドレス で参照した値を書いただけです。 test007-3.asp アクセス時刻は、2002/12/02 11:38:51 , 203.182.79.210 , Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) test007-3.asp アクセス時刻は、2002/12/02 12:20:23 , 210.168.199.42 , PDXGW/1.0 (TX=12;TY=11;GX=120;GY=416;C=CF-;G=J2;GI=2) test007-3.asp アクセス時刻は、2002/12/02 12:21:53 , 203.182.194.1 , Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90) test007-3.asp アクセス時刻は、2002/12/02 12:42:32 , 210.136.161.38 , DoCoMo/1.0/N210i/c10 と無事に書き込むことができました。 携帯電話のIモード端末からアクセスしても動作しました。 DoCoMo/1.0/N210i/c10 って書き込めたのは少し感動かなぁ。 ASPファイルが見れたのは、そんなビックリすることじゃないのか。 ささやかな感動を自作自演している自己満足なKen3でした(笑) Jフォンの人がテストで http://www.ken3.org/cgi-bin/test/test007-3.asp を表示してくれると嬉しいなぁ・・・と独り言書いてみたりして。 次は何やろうかなぁ、、、ハヤク何か面白いの作りたいですよね。 /* * 4.終わりの挨拶 */ なんとなく、わかったような、わからなかったような。 まだまだ、道のりは遠いなぁ〜 アクセスしてきた人の情報を探るでした。 またね(笑) 何か質問があったら、気軽に、 メール、掲示板に書き込んでくださいね。 三流プログラマーのKen3でした。
ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、
感想や質問・要望・苦情など 三流君へメッセージを送る。
下記のフォームからメッセージを送ることができます。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]
まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。
次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません
広告:
DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く
VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]