2009年10月19日月曜日

groovyとPostgreSQLでサーバーとクライアントのIPアドレスを取得する

groovyとPostgreSQLでサーバーとクライアントのIPアドレスを取得するには、以下のコードを実行します。

import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:postgresql://localhost:5432/jtrac",
"postgres",
"postgres",
"org.postgresql.Driver")

query = """select
inet_client_addr() as ica,
inet_client_port() as icp,
inet_server_addr() as isa,
inet_server_port() as isp
"""

sql.eachRow(query){
// クライアントのアドレス
println "ica:${it.ica}"
// クライアントのポート
println "icp:${it.icp}"
// サーバのアドレス
println "isa:${it.isa}"
// サーバのポート
println "isp:${it.isp}"
println "----"
}


動作環境
Groovy 1.6.3, JDK6 Update16, Postgres 8.4.0,
8.4-701JDBC4

関連情報
inet_client_addr(), inet_client_port(),
inet_server_addr(), inet_server_port()
http://www.postgresql.org/docs/8.4/interactive/functions-info.html

0 件のコメント:

コメントを投稿