goo blog サービス終了のお知らせ 

いまここ

うはwww

今日のばんごはんwww

2008-11-23 22:43:04 | 料理
くりーむしちゅーwwwwwっwww

調合書1初級編
みず
みっくすべじたぶる しょーみきげん ふめー
べーこん しょーみきげん 08.10.13 ←1ヶ月以上前の
しちゅーのこな しょーみきげん ふめー
じゃがいも しょーみきげん ふめー
20081122021

ごはn さっきたいた
こんぶ ぜんぶくったw
20081122022

( ^^ω)りょーりかてごり はじめて1たったお
20081122023

Ajax+Servletで、アクセスしてきた奴らのIPアドレスを取得する方法。

2008-11-23 21:11:00 | Java
Ajax+Servletで、アクセスしてきた奴らのIPアドレスを取得する方法。

備忘録
Ajax(prototype.js)と、JavaServletを利用して、アクセスユーザーのグローバルIPアドレスを取得して、データベース(MySQL)に貯めておく方法。

前準備
サーバー機:MacBook
クライアント端末:iPhone 3G
プロジェクト名:gipaddr
参照ライブラリ:servlet-api.jar(./WEB-INF/lib)
参照ライブラリ:mysql-connector-java-bin.jar(./WEB-INF/lib)
参照ライブラリ:prototype.js(./WEB-INF)
Servletクラス:gipaddr.class
htmlファイル:index.html

MySQLデータベース作成

$ mysql u- root p
Password:
mysql>create database dbgipaddr;
Query OK, 1 row affected (0.00 sec)
mysql>create table dbgipaddr.tblgipaddr(
-> seq int auto_increment not null primary key,
-> gipaddr char(15) not null,
-> username varchar(256) not null,
-> timestamp timestamp not null
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> insert into dbgipaddr.tblgipaddr(gipaddr, username) values('000.000.000.000','user');
Query OK, 1 row affected (0.00 sec)
mysql> select * from dbgipaddr.tblgipaddr;
+-----+-----------------+--------------+---------------------+
| seq | gipaddr | username | timestamp |
+-----+-----------------+--------------+---------------------+
| 1 | 000.000.000.000 | user | 2008-11-23 19:07:51 |
+-----+-----------------+--------------+---------------------+
1 row in set (0.00 sec)


Ajaxページ作成 index.html

<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript"></script>
<title></title>
</head>
<body>


</body>
</html>


サーブレット側作成 gipaddr.java

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;

public class gipaddr extends HttpServlet {
public gipaddr() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
if (!request.getLocalAddr().equals(request.getRemoteAddr())){
Connection con = null;
PreparedStatement stmt = null;
String sql = "insert into dbgipaddr.tblgipaddr(gipaddr, username) values('"+request.getRemoteAddr()+"','"+request.getRemoteUser()+"')";
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/","root","");
stmt = con.prepareStatement(sql);
stmt.executeUpdate();
out.println("こんにちわ");
}catch(Exception e){
out.println(e);
}finally{
if(con!=null){
try{
con.close();
}catch(Exception e){
out.println(e);
}
}
}
}else{
out.println("サーバー機です。");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
super.doPost(request, response);
}


クライアント端末(iPhone 3G)で、サーバー端末(MacBook)にアクセスしたとき。

mysql> select * from dbgipaddr.tblgipaddr;
+-----+-----------------+--------------+---------------------+
| seq | gipaddr | username | timestamp |
+-----+-----------------+--------------+---------------------+
| 1 | 000.000.000.000 | user | 2008-11-23 19:07:51 |
| 2 | 192.168.11.3 | null | 2008-11-23 19:38:01 |
+-----+-----------------+--------------+---------------------+
2 rows in set (0.00 sec)


Lan内だから、ローカルIP取得になったけど、Webサーバ公開した時、たぶんグローバルIP取得出来るとおもう。

本日の勝利品。

2008-11-23 02:03:18 | つまらないものを撮ってしまった
ちょw田所とアキバ逝ってきた。

・プチねんどろいど(パッケージ内参照不可) らき☆すた みwiki
・Nikon ML-L3 リモコン
・ギガバイト GA-8I915G Duo PXシリーズ

かがみん目当てでちょっと勝ってみたら、中身はみwiki
みwikiも好きなんで、よかったっぜwww
20081122001

20081122002

20081122003

角度美人だったんだな。

20081122004

ワイコン。
これ、結構便利そうだったんで、勝て見た。
20081122005

ボタン一個付いているだけ。
たったそれだけで、2000円もする!1”
ありえん。
デジカメ版リレーズ
寒い時のシャッターはこれに任せておけばいいwww
俺の手はポッケの中www
インターバル撮影等に使えそうな予感w
20081122006

20081122007

ちょっと、ワイコン使ってみた。
俺なんかよりウマいしwww
ちゃんとピント合ってるしwww
この2000円は脅威だわwww
20081122008

これも
らめぇw
20081122009

母艦勝ってきた。
中古 1980円 美品
まえ、IBM ThinkCentreのジャンク勝ってきたじゃん
あれに、このまえ勝ってきたCPU + メモリ刺して起動させるも、画面表示しなかったんで、ATXマザー勝ってきた。
ジャンクのIBM ThinkCentreのPCケースは、Micro-ATXマザー用だったので、勝ってきたATXマザーはハマりませんw
今度また新しく、ATX用PCケース探さねば・・・orz
ちなみに、ジャンクのIBM ThinkCentreのPCケースの電源ユニットは特殊で、交換できる電源ユニットは皆無です。
20081122010

母艦すぺっくうp
20081122011

中身箱
20081122012

パッケージオープン時
20081122013

パーツ類
20081122014

メイン
20081122015

バック
20081122016

黄DDR1×2
橙DDR2×2


左から、橙黄橙黄の順で交互に並んでいる。
計4ポート
20081122017

socket 775
20081122018

SATA 4ポート (SATAは使った事が無い)
へー こんなんなんだなーw(時代オクレ?
20081122019

不死鳥ビオス系チップ
20081122020