郵便番号・住所検索CGI Ver 1.3.0 (メールフォーム CGI)
郵便番号(7桁)から住所を検索するCGIです。日本郵政のゆうびんホームページの郵便番号ページにて公開されている新郵便番号データ(事業所の個別郵便番号を含む)からデータベースを構築されています。日本全国すべての郵便番号に対応しております。また、郵便番号データベースは膨大ながらも、GDBM(GNUデータベース・マネージャ)を使っているため、すばやい検索を実現しております。ホームページでのご注文フォームなどで住所の入力軽減ツールとしてご利用ください。入力フォームや結果ページはテンプレート方式ですので、ご自由にカスタマイズできます。
サンプル1 サンプル2
サンプルでは、郵便番号を入力させ注文フォームの住所欄に自動的に結果が挿入されることを想定したものです。このサンプルは、同梱されているテンプレートファイルとは異なります。
目次
主な機能
- 郵便番号から住所を検索します。
-
日本郵政のゆうびんホームページの郵便番号ページにて公開されている新郵便番号データ(事業所の個別郵便番号を含む)に登録されている住所を検索し、ページに表示します。表示できる項目は、以下の通りです。
- 郵便番号
- 都道府県
- 都道府県カナ(全角)
- 市区町村
- 市区町村カナ(全角)
- 町域名
- 町域名カナ
- 小字名、丁目、番地等※
- 事業所名※
- 事業所名カナ(全角)※
- テンプレート方式でデザインは自由自在。
-
検索結果のページは、テンプレート方式を取っておりますので、デザインは自由自在に設定できます。また、不要なデータを表示しないようにすることも自由自在です。
- テンプレートはいくつでも利用できます。
-
CGIを一つセットアップするだけで、検索結果に使うテンプレートは、いくつでもご利用いただけます。
- 入力データ補正機能
-
郵便番号を全角で入力しても、ハイフンを入れても入れなくても、正しく検索可能です。
動作環境
このCGIは、以下の環境下で動作します。お使いのサーバが対応しているかをご確認ください。
- サーバの OS が Linux、FreeBSD であること。
- Perl5 が実装されていること。
- Perl5 の標準モジュール「CGI.pm」が実装されていること。
- GDBM (GNU データベース・マネージャ)が利用できること。
- サーバの空き容量が、13 MB 以上あること。
シェアウェア料金
料金
| 個人利用 |
法人・商用利用 |
無料
フリーソフトとしてご利用頂けます。 |
1サイトあたり
¥1,050
本体価 ¥1,000
消費税 ¥50 |
- 本CGIには、テンプレートファイルに 著作権表示が記載されております。個人利用であっても、著作権表示を削除してご利用いただく場合には、シェアウェアとし「法人・商用利用」を適応いたします。
- 個人利用であっても、個人商店など商用サイトでのご利用の場合には、「法人・商用利用」を適応いたします。
- ホームページ作成代行業などの業者様でクライアントに対して本CGIを代行で設置提供する場合には、「法人・商用利用」を適応いたします。
- 本CGIは、同サイト内であればいくつ設置して頂いても構いません。ただし、運営者が同じでも、主旨が異なるサイトに設置する場合には、それぞれにシェアウェア料金を適応します。
- 本CGIは、試用期間を設けておりません。シェアウェア料金をお支払いいただく前に、十分ご試用いただき、ご納得いただいてからお支払いいただきますようお願いいたします。
お支払い方法
クレジットカード決済、コンビニ決済、Vectorシェアレジ、銀行振込をご用意しております。シェアウェア料金のお支払はこちらからどうぞ。

CGIのダウンロード
CGI本体
このパッケージに含まれるデータベースは、日本郵政公社のゆうびんホームページの郵便番号ページにて公開されている平成17年1月31日更新版を、Linux サーバ用にデータベース化したものです。FreeBSD サーバをお使いの場合には、別途、データベースファイルをダウンロードしてください。Linux サーバをご利用の方においても、最新版のデータベースは、別途、下段のデータベースファイルをダウンロードして下さい。
ダウンロードの前に、必ず、CGI 利用規定を良くお読みになり、同意したうえで、ご利用下さい。
データベースファイル
日本郵政のゆうびんホームページの郵便番号ページにて公開されている平成19年08月31日更新版をデータベース化したものです。お使いのサーバ OS にあわせて、ダウンロードしてください。解凍すると、localcode.gdbm, postalcode.gdbm が同梱されています。これらのファイルを、BINARY モードでサーバに上書きアップロードして下さい。
| ・ 対応 OS |
Linux |
| ・ ファイルサイズ |
5.51 MB (5,785,256 バイト) |
| ・ ファイル名 |
db_linux_20070831.zip |
|

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

|
ファイルの一覧と機能
CGIをダウンロードし、解凍してください。それぞれのファイルについて解説します。
| ファイル名 |
パーミッション1 |
パーミッション2 |
転送モード |
ファイルの機能 |
postalcode/ |
変更不要 |
変更不要 |
|
本CGI用ディレクトリ |
getaddr.cgi |
704 |
705 |
[ASCII] |
CGI本体 |
config.cgi |
変更不要 |
変更不要 |
[ASCII] |
設定ファイル |
form.html |
変更不要 |
変更不要 |
[ASCII] |
郵便番号入力フォームサンプルHTML |
result.html |
変更不要 |
変更不要 |
[ASCII] |
結果テンプレートサンプルHTML |
result1.html |
変更不要 |
変更不要 |
[ASCII] |
結果テンプレートサンプルHTML |
error.html |
変更不要 |
変更不要 |
[ASCII] |
エラー画面テンプレートサンプルHTML |
jcode.pl |
変更不要 |
変更不要 |
[ASCII] |
日本語コード変換ライブラリー |
localcode.gdbm |
変更不要 |
変更不要 |
[BINARY] |
データベースファイル1(Linux 版) |
postalcode.gdbm |
変更不要 |
変更不要 |
[BINARY] |
データベースファイル2(Linux 版) |
転送先
フォルダ「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 です。あえてパーミッションを変更しないでください。
Let's get started!
とりあえず、動かしてみましょう。以下の手順に従って、サンプルを動かしてみましょう。
- 1. 郵便番号入力フォームの修正
-
添付の郵便番号入力フォームHTML「form.html」をテキストエディタで開いてください。
<form method="POST" action="getaddr.cgi">
「getaddr.cgi」の部分を、CGIを設置したサーバに合わせてURLを正しく書き直してください。
- 2. Perlのパス設定
-
プロバイダーによって、Perlパスが異なります。デフォルトでは「#!/usr/local/bin/perl」と設定しております。プロバイダーの指示に従い、getaddr.cgi の1行目を書き換えてください。ほとんどのプロバイダーではそのままで動作します。
- 3. サーバへアップロード
-
これで設定は完了ですので、サーバへアップロードしましょう。localcode.gdbm, postalcode.gdbm はBINARIモードで、その他のファイルはすべてASCII(テキスト)モードで転送してください。
同梱されているデータベースファイルは Linux サーバ用です。お使いのサーバが Free BSD または Solaris(Intel 版)の場合には、別途、こちらからデータベースファイルをダウンロードして、お使いのサーバにアップロードして下さい。
ホームページコンテンツとCGIのディレクトリが異なるプロバイダーをご利用の方は、「form.html」をホームページコンテンツ用のディレクトリへ、その他はCGI用のディレクトリへアップろロードしてください。転送が完了しましたら、「getaddr.cgi」のパーミッションを「704」にして下さい。もし、お使いのプロバイダーでは異なるパーミッションを指定しているようでしたら、プロバイダーの指示に従ってください。
- 4. さぁ! 試験してみましょう
-
サーバへアップロードした「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>
- フォームタグを閉じます。忘れないように最後に記述しておいて下さい。
検索結果テンプレートHTMLファイルの編集方法
サンプルの「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$ |
事業所(会社)名のカナに置き換えられます。(全角カナ)※1 |
なお、指定文字列は、全角・半角、大文字・小文字を区別します。必ず半角・大文字で指定して下さい。
エラー画面テンプレートの編集方法
サンプルの「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」で行います。すべて重要な設定項目ですので、もれなく説明を読んでいただき、お好みにあわせて設定してください。
$TEMP_DIR = '.';
$ResultTemplate = 'result.html';
$ERROR_TEMP = 'error.html';
$ZENKAKU_FLAG = 0;
@ALLOW_FORM_URLS = ();
$NO_HIT_FLAG = 0;
return 1;
制限・注意事項
- 本CGIは、SJISで作成されており、それが前提で動作します。他の文字コードに変換すると動作しなくなりますので、ご注意ください。
- 各種テンプレートはすべてSJISで作成されていることを前提に動作します。他の文字コードで作成されますと、正しく動作しませんので、ご注意ください。
- 外部サーバからの利用禁止設定機能は、ブラウザーが送ってくる参照元URL(HTTP_REFERER)を使っています。HTTP_REFERERを送信しないブラウザーからアクセスした場合、エラーとなってしまいますので、ご注意ください。(i-modeなど)
- サーバに、GDBMが実装されていないと動作しません。お使いのプロバイダーもしくはレンタルサーバ業者にお問い合わせください。
バージョンアップ方法
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
- 郵便番号を全角数字で入力すると Internal Server Error となってしまうバグを改修した。
- データベースを最新版に更新。(ゆうびんホームページの郵便番号ページにて公開されている平成17年1月31日更新版をデータベース化
【Ver 2.1 → Ver 2.2】 2003/11/16
- 105-0014(東京都 港区 芝)、108-0014(東京都 港区 芝)、105-0023(東京都 港区 芝浦)、108-0023(東京都 港区 芝浦)を検索すると、「芝」が「ネ」と表示されてしまう不具合を修正した。
【Ver 2.0 → Ver 2.1】 2002/08/11
- データベースファイルを開けなかった場合のエラー表示を修正。
- データベースファイルを Linux 版に加え、Free BSD 版、Solaris(Intel 版)を追加。
【Ver 1.2 → Ver 2.0】 2002/07/24
- GDBM がサーバに実装されていない場合、その旨、エラー表示するようにした。
- getaddr.cgi, config.cgi のソースコードを書き直した。
- データベースを最新版に更新。(ゆうびんホームページの郵便番号ページにて、平成14年6月1日現在のデータを平成14年7月23日に掲載されたものをデータベース化
【Ver 1.1 → Ver 1.2】 2002/06/16
- 一部海外サーバにおいて文字化けする現象を回避するよう改善。
- データベースを最新版に更新。(ゆうびんホームページの郵便番号ページページにて、平成14年4月1日現在のデータを平成14年5月29日に掲載されたものをデータベース化
【Ver 1.1 → Ver 1.2】 2002/05/20
- データベースを最新版に更新。(ゆうびんホームページの郵便番号ページページにて、平成14年3月1日現在のデータを平成14年4月25日に掲載されたものをデータベース化
【Ver 1.0 → Ver 1.1】 2001/11/15
- データベースを最新版に更新。(ゆうびんホームページの郵便番号ページページにて、平成13年9月1日現在のデータを平成13年10月22日に掲載されたものをデータベース化