Internet Start Page  TOP  
 Road of Developers
 
 


DownLoad getIP.lzh(ソースコード付き)


=====================================================================

JavaとCGIを使ったグローバルIPを自動的に取得する自宅サーバーに
絶対必要なシステム(仮)   I-ichirow Suzuki(suzuki@kg-group.com)

=====================================================================

固定グローバルIPを持たないユーザーにとって、自宅サーバーへのアクセス誘導は重要課題です。
プロバイダによって割り当てられるグローバルIPアドレスは接続の都度不定期に変更されて
しまうので、せっかく自宅サーバーを立ち上げても、刻々と変動する自分のIPアドレスを、その
都度HTMLファイルを修正してFTPするのは大変です。

このアプリケーションはCGIの使えるレンタルサーバーにCGIの環境変数によって、自宅サーバー
のグローバルIPアドレスを取得するCGIファイルをおき、自宅サーバー側一定間隔でレンタル
サーバー上のCGIファイルへアクセスし、ユーザーを誘導する為のHTMLファイルを生成する仕組み
です。勿論HTMLファイルの編集はお好みでカスタマイズ可能です。

Windowsユーザーの場合は Javaアプリケーションとして実行する事も出来ますし、
Exeに固めてあるのでWindows実行アプリケーションとしても起動する事が出来ます。
その場合はJDKのインストールは不要です。しかも、きっとその方がマシンの付加も少ないです。


まず、in.cgiを自分のレンタルサーバーへFTPしてパーミッションを755にします。

urlData.txtファイルに in.cgiを転送したサーバーのフルパスを1行目に記述します。

ここにin.cgiを転送したとします。
http://www.kg-group.com/s/in.cgi

その場合はurlData.txtファイルの一行目にin.cgiのフルパスを記述します
http://www.kg-group.com/s/in.cgi

◆OSがWindowsの場合。
GetIP.exeをダブルクリックして起動してください。
または、GetIP.batをダブルクリックする事でJavaアプリケーションとして実行する事も出来ます。

◆OSがLinuxの場合
JDKがインストールされていてPATHが通っている事を前提として、

GetIP.sh を実行してください。

# ./GetIP.sh

◆その他
JDKがインストールされていれば コンソールから以下の様にJavaアプリケーションとして
起動する事が可能です。

# java GetIP

例)
java GetIP http://www.kg-group.com/s/in.cgi

上書き保存して GetIP.batをダブルクリックして起動します。
(今更なんですが、JDKがインストールされていてなおかつパスを通しておく必要があります)

うまくいった場合はDOSプロンプト、Linuxなどではコンソールが起動し、約1分ごとに
自宅サーバーが(実行しているマシン)レンタルサーバー上のin.cgiへアクセスして
グローバルIPを同じディレクトリのindex.htmlへ書き込みます。

な、訳で実際にユーザー同士がアクセスする場合は 例で行くと

例)
http://www.kg-group.com/s/index.html

にアクセスしてもらう事になります。
index.htmlの修正などは実際に見て頂いた方がよいと思います。

さらに今更なんなのですが、自宅サーバーにサーバー機能がないとだめですよん♪

/**
 * JavaとCGIを使ったグローバルIPを自動的に取得する自宅サーバーに
 * 絶対必要なシステム(仮)   I-ichirow Suzuki(suzuki@kg-group.com)
 */

import java.io.*;
import java.net.*;
import java.util.*;
import java.text.*;

/**
 * URLデータファイル in.cgiを固定グローバルIPを持つサーバーへ
 * パーミッション 755 で転送。
 *
 * そのファイルへのフルパスを urlData.txtの一行目に記述
 *
 * 例) http://www.kg-group.com/s/in.cgi
 * へin.cgiファイルをを編集して送信した場合
 *
 * urlData.txtの一行目に http://www.kg-group.com/s/in.cgi を記述
 */
public class GetIP
{
	public static void main(String[] args)
	{
		try
		{
			// urlData.txtをReadLine
			FileReader fr = new FileReader("urlData.txt") ;
			BufferedReader br = new BufferedReader(fr) ;
			String urlData = new String()  ;
			// File の1行目のURLをurlDataに格納
			urlData = br.readLine() ;
			// Connectt
			URL url = new URL(urlData);
			URLConnection urlconnection = url.openConnection();
			// Starting Thread
			Thread thread = Thread.currentThread();
			Date date = new Date();
			DateFormat df = new SimpleDateFormat("yyyy.MM.dd 'at' HH:mm:ss z");
			while(true)
			{// 1分ごとに指定ファイルへアクセスする
				System.out.println((String)df.format(date) + " " + urlData + " へのアクセス完了");
				Thread.sleep((1000*60*1));
			}
		}
		catch(MalformedURLException e){}
		catch(InterruptedException e){}
		catch(IOException e){}
	}
}


インターネットスタートページ 鈴木維一郎 石橋三重子
         
               
                   


©2000 kg-group Inc.