[三流君] −−> [ASPで遊ぶ、失敗する] −−> [バックナンバー一覧]
−−> No.007 ブラウザ(端末情報)をGetする

ブラウザ(端末情報)をGetする



本文(発行内容)


<ブラウザ(端末情報)を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でした。


ページフッター

ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、

三流君へ メッセージを送る

感想や質問・要望・苦情など 三流君へメッセージを送る。
返信例 XXXXさんへ
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:

アドレス:に返事をもらいたい
感想や質問↓:


(感想や質問・要望・苦情はHPで記事に載せることがあります。)

種類別のリンク や 広告など

[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


Blogとリンク:[三流君のMemo別館]/ [ASP 三流君のソースコード置き場]/ [Ken3Video YouTubeで動画解説]
広告:

気になった ジャンル ↓を選択してください。

まぁ、基本はデータの受け取りかなぁ。
・[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記事 バックナンバー目次]


広告: