[三流君] −−>
[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でした。
フィードバック
ASP系の→[掲示板]←を覗く、質問を書き込む
評価・感想
三流君の主なリンク先
[アクセスランキング]
[サイトマップ]
[リンク先・相互リンク先など]
Ken3の日記(weblog) --
[広告・副収入系]
[プログラマー業務の愚痴]
[VBA系の話題]
[ASP系の話題]
[コンビニ系ネタ]
[その他]
その他 宣伝広告