郵便番号(7桁)から住所を検索するCGIです。日本郵政公社ゆうびんホームページ郵便番号ページにて公開されている新郵便番号データ(事業所の個別郵便番号を含む)からデータベースを構築されています。日本全国すべての郵便番号に対応しております。また、郵便番号データベースは膨大ながらも、GDBM(GNUデータベース・マネージャ)を使っているため、すばやい検索を実現しております。ホームページでのご注文フォームなどで住所の入力軽減ツールとしてご利用ください。入力フォームや結果ページはテンプレート方式ですので、ご自由にカスタマイズできます。

サンプル1 サンプル2

サンプルでは、郵便番号を入力させ注文フォームの住所欄に自動的に結果が挿入されることを想定したものです。このサンプルは、同梱されているテンプレートファイルとは異なります。

日本郵政公社ゆうびんホームページ郵便番号ページにて公開されている新郵便番号データ(事業所の個別郵便番号を含む)に登録されている住所を検索し、ページに表示します。表示できる項目は、以下の通りです。

  • 郵便番号
  • 都道府県
  • 都道府県カナ(全角)
  • 市区町村
  • 市区町村カナ(全角)
  • 町域名
  • 町域名カナ
  • 小字名、丁目、番地等
  • 事業所名
  • 事業所名カナ(全角)
事業所郵便番号の場合にのみ検索されます。

検索結果のページは、テンプレート方式を取っておりますので、デザインは自由自在に設定できます。また、不要なデータを表示しないようにすることも自由自在です。

CGIを一つセットアップするだけで、検索結果に使うテンプレートは、いくつでもご利用いただけます。

郵便番号を全角で入力しても、ハイフンを入れても入れなくても、正しく検索可能です。

このCGIは、以下の環境下で動作します。お使いのサーバが対応しているかをご確認ください。

CGI利用規定をご覧になり、同意した上で、ご利用ください。

CGI利用規定を読む

【料金】

個人利用 法人・商用利用
フリー 1サイトあたり
\1,050
(うち税 \50)

【支払い方法】

クレジットカード決済、コンビニ決済、Vectorシェアレジ、銀行振込をご用意しております。シェアウェア料金のお支払はこちらからどうぞ。

クレジットカード決済
VISA
MASTER
Diners Club

コンビニ決済
セブン
イレブン
ファミリー
マート
ローソン
セイコー
マート

【CGI 本体】

このパッケージに含まれるデータベースは、日本郵政公社ゆうびんホームページ郵便番号ページにて公開されている平成17年1月31日更新版を、Linux サーバ用にデータベース化したものです。FreeBSD サーバをお使いの場合には、別途、データベースファイルをダウンロードしてください。Linux サーバをご利用の方においても、最新版のデータベースは、別途、下段のデータベースファイルをダウンロードして下さい。

・ 圧縮形式 zip
・ ファイルサイズ 5.52 MB (5,793,148 バイト)
・ ファイル名 postalcode2_3.zip

CGI本体ZIP版ダウンロード

 

【データベースファイル】

日本郵政公社ゆうびんホームページ郵便番号ページにて公開されている平成19年08月31日更新版をデータベース化したものです。お使いのサーバ OS にあわせて、ダウンロードしてください。解凍すると、localcode.gdbm, postalcode.gdbm が同梱されています。これらのファイルを、BINARY モードでサーバに上書きアップロードして下さい。

・ 対応 OS Linux
・ ファイルサイズ 5.51 MB (5,785,256 バイト)
・ ファイル名 db_linux_20070831.zip

データベースLinux版ダウンロード


・ 対応 OS Free BSD
・ ファイルサイズ 5.05 MB (5,305,164 バイト)
・ ファイル名 db_bsd_20070831.zip

データベースFreeBSD版ダウンロード

CGIをダウンロードし、解凍してください。それぞれのファイルについて解説します。

ファイル名 パーミッション1 パーミッション 転送モード ファイルの機能
Folder  postalcode/
変更不要 変更不要 本CGI用ディレクトリ
blank File  getaddr.cgi
704 705 [ASCII] CGI本体
blank File  config.cgi
変更不要 変更不要 [ASCII] 設定ファイル
blank File  form.html
変更不要 変更不要 [ASCII] 郵便番号入力フォームサンプルHTML
blank File  result.html
変更不要 変更不要 [ASCII] 結果テンプレートサンプルHTML
blank File  result1.html
変更不要 変更不要 [ASCII] 結果テンプレートサンプルHTML
blank File  error.html
変更不要 変更不要 [ASCII] エラー画面テンプレートサンプルHTML
blank File  jcode.pl
変更不要 変更不要 [ASCII] 日本語コード変換ライブラリー※1
blank File  localcode.gdbm
変更不要 変更不要 [BINARY] データベースファイル1(Linux 版)
blank File  postalcode.gdbm
変更不要 変更不要 [BINARY] データベースファイル2(Linux 版)
※1 jcode.pl は、歌代 和正 <utashiro@iij.ad.jp> 氏によって作成されている、日本語コード変換を行うための Perl ライブラリです。

■ 転送先

フォルダ「postalcode」を、転送モードに注意して、プロバイダー指定の場所にアップロードしてください。入力フォームとなる「form.html」に関しては、通常の HTML ファイルをアップロードする場所に設置してください。ただし、form タグ内の CGI の URL は書き換えてください。(後述)

また、データベースファイルは 2 つ(localcode.gdbm, postalcode.gdbm)ありますが、これらのファイルも同じディレクトリにアップロードしてください。データベースファイルをアップロードする際には、バイナリーモードで転送してください。

同梱されているデータベースファイルは Linux サーバ用です。お使いのサーバが Free BSD または Solaris(Intel 版)の場合には、別途、こちらからデータベースファイルをダウンロードして、お使いのサーバにアップロードして下さい。

■ パーミッション

これらパーミッションは、あくまでも例です。お使いのプロバイダー、レンタルサーバ業者の指示に従ってください。

上表には、パーミッションの指定が 2 種類指定しております。CGI がオーナー権限で実行されるサーバをお使いの場合には、パーミッション1の設定を使ってください。CGI が ohter 権限で実行されるサーバをお使いの場合には、パーミッション2の設定を使ってください。

CGI がオーナー権限で実行されるか、other 権限で実行されるかは、お使いのプロバイダーもしくはレンタルサーバ業者に確認してください。おおむね、CGI ファイルのパーミッションが、704 でも動作する場合には、オーナー権限で実行されると考えても結構です。CGI ファイルのパーミッションが、705 もしくは 707 でないと動作しない場合には、other 権限で実行されているとお考えください。

「変更不要」と指定しているファイルは、サーバにアップロードするだけで OK です。あえてパーミッションを変更しないでください。

とりあえず、動かしてみましょう。以下の手順に従って、サンプルを動かしてみましょう。

  1. 郵便番号入力フォームの修正

添付の郵便番号入力フォームHTML「form.html」をテキストエディタで開いてください。

<form method="POST" action="getaddr.cgi">

getaddr.cgi」の部分を、CGI を設置したサーバに合わせて URL を正しく書き直してください。

  1. Perlのパス設定

プロバイダーによって、Perlパスが異なります。デフォルトでは「#!/usr/local/bin/perl」と設定しております。プロバイダーの指示に従い、「getaddr.cgi」の1行目を書き換えてください。ほとんどのプロバイダーでは、そのままで動作します。

  1. サーバへアップロード

これで設定は完了ですので、サーバへアップロードしましょう。「localcode.gdbm」「postalcode.gdbm」は BINARI モードで、その他のファイルはすべて ASCII モードで転送してください。

同梱されているデータベースファイルは Linux サーバ用です。お使いのサーバが Free BSD または Solaris(Intel 版)の場合には、別途、こちらからデータベースファイルをダウンロードして、お使いのサーバにアップロードして下さい。

ホームページコンテンツとCGIのディレクトリが異なるプロバイダーをご利用の方は、「form.html」をホームページコンテンツ用のディレクトリへ、その他はCGI用のディレクトリへアップろロードしてください。転送が完了しましたら、「getaddr.cgi」のパーミッションを「704」にして下さい。もし、お使いのプロバイダーでは異なるパーミッションを指定しているようでしたら、プロバイダーの指示に従ってください。

  1. さぁ! 試験してみましょう

サーバへアップロードした「form.html」に、ブラウザーでアクセスしてみてください。フォームサンプル画面が表示されましたね。ここに郵便番号を入力して検索ボタンを押してください。すると、該当の住所が表示されます。

いかがでしたか?ちゃんと動いたでしょうか。これからは、あなたの環境に合わせて、少しずつカスタマイズしていってください。次から、カスタマイズの方法をご案内します。

サンプルの「form.html」を例に取り説明します。

<form method="POST" action="http://www.hoge.com/cgi-bin/postalcode/getaddr.cgi">
<input type="hidden" name="template" value="result1.html">
<table border="0">
<tr>
<td nowrap>郵便番号を入力して下さい。</td>
<td nowrap><input type="text" name="postalcode" size="20"></td>
<td nowrap><input type="submit" value="検索" name="B1"></td>
</tr>
</table>
</form>

例の赤字の部分のみが必須です。その他の部分は、自由に変更して頂いても構いません。それぞれの意味は、以下の通りです。
<form method="POST" action="http://www.hoge.com/cgi-bin/postalcode/getaddr.cgi">
Let's Get Started で説明したように、「http://www.hoge.com/cgi-bin/postalcode/getaddr.cgi」の部分は、お使いのサーバに合わせて変更してください。
<input type="hidden" name="template" value="result1.html">
ここは結果を表示するためのテンプレートHTMLファイルの指定です。指定がない場合には、「result.html」というテンプレートファイルを使います。複数のテンプレートを利用したい場合などには、ここで個別に指定して下さい。
<input type="text" name="postalcode" size="20">
name属性の「postalcode」は必須です。この名前を変更すると正しく動作しませんので、ご注意ください。size属性はご自由に変更して頂いても構いません。
<input type="submit" value="検索" name="B1">
検索ボタンのタグです。valueの「検索」や, nameの「B1」の部分はご自由に変更して頂いても構いません。
</form>
フォームタグを閉じます。忘れないように最後に記述しておいて下さい。

サンプルの「confirm.html」を例にとり説明します。

<table border="1">
<tr>
<td>郵便番号</td>
<td>$POSTALCODE1$-$POSTALCODE2$</td>
</tr>
<tr>
<td>都道府県</td>
<td>$PREF$</td>
</tr>
<tr>
<td>市区町村</td>
<td>$CITY$</td>
</tr>
<tr>
<td>番地</td>
<td>$TOWN$</td>
</tr>
<tr>
<td>都道府県カナ</td>
<td>$PREFKANA$</td>
</tr>
<tr>
<td>市区町村カナ</td>
<td>$CITYKANA$</td>
</tr>
<tr>
<td>番地カナ</td>
<td>$TOWNKANA$</td>
</tr>
<tr>
<td>事業所名</td>
<td>$ORG$</td>
</tr>
<tr>
<td>事業所名カナ</td>
<td>$ORGKANA$</td>
</tr>
</table>

例えば、「$PREF$」と書かれた部分は、CGIプログラムによって「東京都」のように都道府県名に置き換えられます。その他の項目も同様で、それぞれに対応した文字列を指定して記述すれば、その部分が該当する結果に置き換えられます。対応は以下の通りです。

文字列 結果
$POSTALCODE1$ 検索のキーとなった郵便番号の上3桁です。入力された郵便番号が全角で入力されたとしてもすべて半角数字に変換されます。設定により全角数字に変換することも可能です。
$POSTALCODE2$ 検索のキーとなった郵便番号の下4桁です。入力された郵便番号が全角で入力されたとしてもすべて半角数字に変換されます。設定により全角数字に変換することも可能です。
$PREF$ 都道府県名に置き換えられます。(漢字)
$CITY$ 市区町村に置き換えられます。(漢字)
$TOWN$ 小字名、丁目、番地等に置き換えられます。(漢字)
$PREFKANA$ 都道府県名カナに置き換えられます。(全角カナ)
$CITYKANA$ 市区町村名カナに置き換えられます。(全角カナ)
$TOWNKANA$ 小字名、丁目、番地等のカナに置き換えられます。(全角カナ)
$ORG$ 事業所(会社)名に置き換えられます。
$ORGKANA$ 事業所(会社)名のカナに置き換えられます。(全角カナ)
事業所郵便番号の場合にのみ検索されます。

なお、指定文字列は、全角・半角、大文字・小文字を区別します。必ず半角・大文字で指定して下さい。

サンプルの「error.html」を例にとり説明します。

<table border="0" width="50%" bgcolor="#F1D7FF" cellpadding="10">
<tr>
<td width="100%"><font color="#990033">$EEROR$</font></td>
</tr>
</table>

このエラー画面で注意すべきところは、「$EEROR$」だけです。この部分に、エラーメッセージが表示されますので、お好きなところに、「$EEROR$」を記述して下さい。もし、個別のエラーメッセージではなく、単一のメッセージにしたい場合には、「$EEROR$」を消して下さい。

すべての機能設定、環境設定は、「config.cgi」で行います。すべて重要な設定項目ですので、もれなく説明を読んでいただき、お好みにあわせて設定してください。

#--------------------------------------------------------------------
#■テンプレートファイル格納ディレクトリ
# すべてのテンプレートファイルを格納するディレクトリの指定です。ここ
# での指定は、検索結果テンプレート、エラー画面テンプレートのディレク
# トリとなります。「getaddr.cgi」と同じディレクトリに設置する場合には
# $TEMP_DIR = '.';
# として下さい。ディレクトリを指定する場合には、「getaddr.cgi」からみ
# た相対パスで指定して下さい。また、最後に「/(スラッシュ)」を入れな
# いで下さい。
#--------------------------------------------------------------------
$TEMP_DIR = '.';


#--------------------------------------------------------------------
#■デフォルトの結果表示用テンプレートHTMLファイル名の指定
# 結果表示用テンプレートHTMLは、フォームHTMLで指定されますが、もし指
# 定されなかった場合に使うデフォルトのテンプレートファイルを指定しま
# す。ここでの指定は、あくまでもファイル名の指定です。パスは加えない
# で下さい。パスの指定は、上の $TEMP_DIR で指定して下さい。
#--------------------------------------------------------------------
$ResultTemplate = 'result.html';


#--------------------------------------------------------------------
#■エラー画面テンプレートファイル名の指定
# エラー画面用のテンプレートファイル名の指定です。ここでの指定は、あ
# くまでもファイル名の指定です。パスは加えないで下さい。パスの指定は
# 上の $TEMP_DIR で指定して下さい。
#--------------------------------------------------------------------
$ERROR_TEMP = 'error.html';


#--------------------------------------------------------------------
#■郵便番号全角変換機能
# 検索結果に表示する郵便番号を全角、半角どちらで表示するかを指定しま
# す。半角の場合には「0」を、全角の場合には「1」を指定して下さい。
#--------------------------------------------------------------------
$ZENKAKU_FLAG = 0;


#--------------------------------------------------------------------
#■外部サーバからの利用禁止設定
# このCGIを使って、まったく別のページから勝手に利用されないように、
# フォームのURLを限定することができます。CGIの利用を許可するフォーム
# のURLを指定して下さい。指定がない場合には、制限は一切かかりません。
# ここで指定するURLのパターンマッチは、すべて前方一致です。
#
# 例:
# フォームのURLが、http://www.hoge.com/form.html の場合、
# @AllowFormUrls = ('http://www.hoge.com/form.html');
#
# 複数のフォームが存在し、それがすべて http://www.hoge.com/ 内にある
# 場合には、
# @AllowFormUrls = ('http://www.hoge.com/');
# これで、http://www.hoge.com/配下のページからのアクセスはすべて許可
# します。
#
# 複数のドメインからの利用を許可する場合には、
# @ALLOW_FORM_URLS = ('http://www.foo.com/', 'http://www.bar.com/');
# のように指定します。
#
# 【制限事項】
# この機能は、ブラウザーが送ってくる参照元URL(HTTP_REFERER)を使っ
# ています。もしこの機能を使った場合、HTTP_REFERERを送信しないブラ
# ウザーからアクセスした場合、エラーとなってしまいますので、ご注意
# ください。(i-modeなど)
#--------------------------------------------------------------------
@ALLOW_FORM_URLS = ();


#--------------------------------------------------------------------
#■検索結果がヒットしなかった場合の動作設定
# 入力フォームから入力された郵便番号から検索した結果、該当する住所が
# なかった場合にどうするかを設定します。
# エラー画面を表示する場合には「1」を、そのまま結果ページを表示する
# 場合には「0」を指定して下さい。
#--------------------------------------------------------------------
$NO_HIT_FLAG = 0;




#--------------------------------------------------------------------
# これ以降は、決して削除しないで下さい。
#--------------------------------------------------------------------
return 1;

Ver 2.0 以上をお使いの方は、getaddr.cgi の Perl のパスを確認のうえ、ASCII モードで上書きアップロードして下さい。加えて、postalcode.gdbm、localcode.gdbm の 2 ファイルをバイナリーモードでサーバに上書きアップロードして下さい。

Ver 1.x をお使いの方は、お手数ながら、設定ファイル config.cgi の設定を再度行っていただき、すべてのファイルを上書きしてください。

【Ver 2.2 → Ver 2.3】 2005/02/09

【Ver 2.1 → Ver 2.2】 2003/11/16

【Ver 2.0 → Ver 2.1】 2002/08/11

【Ver 1.2 → Ver 2.0】 2002/07/24

【Ver 1.1 → Ver 1.2】 2002/06/16

【Ver 1.1 → Ver 1.2】 2002/05/20

【Ver 1.0 → Ver 1.1】 2001/11/15

戻る

会社案内 | 特定商取引法に基づく表示 | プライバシーポリシー | 当サイトへのリンクについて | お問い合わせ