2008年4月22日火曜日

FTPS で LIST コマンドがハングアップする

先日、あるお客様から FTPS でサーバに接続すると、サーバログイン後しばらくすると固まってしまう、というお問い合わせを頂きました。そのログを見ると以下のようになっています。
> Connecting to FTP server
> Connected.
> 220 Serv-U FTP Server v6.4 for WinSock ready...
> USER XXXXXXXX
> 331 User name okay, need password.
> PASS XXXXXXXX
> 230 User logged in, proceed.
> PWD
> 257 "/" is current directory
> PASV
> 227 Entering Passive Mode(192,168,0,2,8,71)
> LIST

サーバから 227 応答を得た後、クライアントが LIST コマンドを発行してところでハングアップしてしまいます。

これは、既定値ではパッシブモード時のリモートサーバアドレスを、サーバ応答から得るためで、この例ではリモートサーバはファイアウォールの内側に設置されており 192.168.0.2 というプライベートアドレスを使用しているためです。SSL を使用していなければファイアウォールがこのデータの書き換えを行ってくれるでしょうが、SSL で暗号化されたセッションの書き換えは行いません。この結果、クライアント側はサーバへのデータチャネルの接続にこのプライベートアドレスを使用してしまい、接続ができずタイムアウトしてしまうことになります。

これを解決するには FTP コンポーネントの構成設定パラメータで
    FTPS1.Config('UseRemoteHostAddressForPassive=true')

として、リモートサーバアドレスを RemoteHost プロパティから得るようにします。これにより、リモートサーバのアドレスは実際に当該クライアントから見たリモートサーバのアドレス (ファイアウォールのグローバル側アドレス) が使用されるようになり、ファイアウォールのポートフォワード機能を介して正しくファイアウォールの内側にあるサーバとコントロールチャネルを確保できるようになります。

2008年4月21日月曜日

IPv6 と IPv4

弊社の通信系コンポーネントでは、アドレス指定方式として IPv6 と IPv4 をサポートしています。

この設定は、UseIPV6 構成設定パラメータで指定します。既定値は false で、IPv4 アドレスを使用します。この設定を true にすることで、IPv6 アドレス形式を使用できるようになります。設定例 (C#):
コンポーネント名.Config("UseIPV6=true");

なお、UseIPV6 の設定の如何にかかわらずアドレス形式は IPv6 または IPv4 を排他的に使用します。両者の混在はできません。(UseIPV6=true の場合は IPv6 形式、false の場合は IPv4 形式のみがご利用頂けます。)

2008年4月18日金曜日

弊社製品で必要となる JDK バージョン

弊社 Java 製品は JDK 1.3 以降でのご利用を前提として設計されていますが、JDK 1.4 以降でのご利用をお勧めします。

2008年4月17日木曜日

Java Edition の2つの .jar ファイルについて

製品版の lib フォルダ内を見ると、2つの .jar ファイルがあります。ひとつは製品名の .jar (IP*Works! Core なら ipworks.jar、IP*Works! Zip なら ipworkszip.jar)、もうひとつは製品に関係なく deploy.jar となっています。

これらは、内容はほとんど同じですが、製品名の .jar にはデバッグ用の情報も含まれています。従って、サイズは deploy.jar は製品名の .jar のおよそ半分以下となりますので、成果物を配布する際には deploy.jar を指定する方が有利なケースが多々あります。

※なお、評価版には deploy.jar は含まれておらず製品名の .jar のみとなっています。

また、同一アプリケーションで複数の弊社 Java 製品をご利用いただく場合、deploy.jar という名称が衝突してしまいます。このような場合は適宜名前を変更してご利用ください。

2008年4月15日火曜日

IP*Works! アクティブ化 FAQ

製品アクティブ化 FAQ

アクティブ化とは何ですか?

アクティブ化とは、意図的な、あるいは意図せざるソフトウェアへの著作権侵害行為を制限することを目的に登録処理内に追加された手順です。製品のアクティブ化はソフトウェアベンダーがソフトウェアの著作権侵害行為を制御するためのポピュラーな手段となっており、Microsoft や Novell、Borland 等多くのベンダーにより利用されています。そして著作権侵害行為を制限することにより、各社は開発により注力しより多くの資源を割り当て、また顧客に対しより価値のあるサービスをしっかりと提供することができます。
アクティブ化は製品ライセンス同意書の事項に従った合法的な使用を妨げるようなことは意図していません。

それはどのように動作しますか?

アクティブ化は通常、初めて製品をインストールする際に行われます。あるマシン上で初めて当該製品をインストールする場合、インストールプログラムは当該製品をアクティブ化しなければならない旨を通知します。そしてインストーラはアクティブ化キーをダウンロードするための、弊社サイト内のページへの URL をオープンするよう提示します。この時これを受け入れると、弊社ウェブサイトへと誘導され、あなたの製品名、シリアル番号、キーおよび NODEID が記載済みのページが表示されます。このページで .reg ファイルのアイコンをクリックするだけで、あなたのマシンで製品をアクティブ化するための正しいレジストリファイルがダウンロードされます。

REG ファイルをあなたのマシンにダウンロードしたら、当該ファイルをディスクに保存します。これ以降あなたがマシン名を変更しない限り、この REG ファイルをダブルクリックするだけで毎回弊社ウェブサイトを参照することなく、当該ソフトウェアをアクティブ化することができます。NODEID は同一のままですので、これが問題になることはありません。

NODEID とは何ですか?NODEID はどうすれば知ることができますか?

NODEID とは、アクティブ化処理時に使用される、マシン名の一方向ハッシュです。これにより我々は製品がアクティブ化されるコンピュータの実際のマシン名を収集する必要がなく、あなたのプライバシーを守ることができるのです。あなたの NODEID は、次の2つの方法で知ることができるはずです:

製品のインストール中であれば、当該製品をアクティブ化しなければならないことを通知するウィンドウが表示されます。このウィンドウ内に当該マシンの NODEID が記載されています。

コンポーネントがあるマシンでアクティブ化されていないのであれば、そのマシン上でいずれかのコンポーネントを使用すると当該マシンの NODEID を提示するダイアログが表示されます。

【訳注: V8 製品ではインストール時にアクティブ化しないとインストールが完了しないようになっていますので、未アクティブ化状態でのインストールは、レジストリの破損等でもない限り通常はあり得なくなっています。】

一度当該マシンの NODEID を取得してしまえば、そのマシン上で製品を簡単にアクティブ化できます。

製品アクティブ化には何か特別なソフトウェアが必要ですか?

いいえ。製品アクティブ化サイクルの際に弊社ウェブサイトが提示され .reg ファイルをダウンロードするよう示されます。ダウンロードした REG ファイルをダブルクリックすることで、アクティブ化情報はあなたのローカルマシン レジストリに自動的に追加されます。

私のコンピュータはファイアウォールの内側にありますが、これはアクティブ化に関し問題となりますか?

これは問題とはならないはずです。アクティブ化処理ははウェブベースの処理であり、あなたが弊社ウェブサイトに到達できるのであればなんら問題は発生しないはずです。弊社ウェブサイトへの接続が困難な場合は、FAQ「IP*Works! をインストールするマシンがインターネットに接続されていません。…」をご参照ください。

プライバシーはどうなりますか?マシンをアクティブ化するのにどんな情報が必要ですか?

ソフトウェアのアクティブ化の際に必要となる情報は、有効なシリアル番号、キーおよび NODEID のみです。これらはユーザの確認およびアクティブ化のためだけに必要です。さらに付け加えておくと、NODEID は一方向ハッシュでありその値からいかなる情報をも取り出すことは不可能です。これら以外の情報を集めないことで、/n software はお客様のプライバシーを完全に保護します。

アクティブ化せずに IP*Works! を使用できますか?

IP*Works! 製品はどれもアクティブ化をすることなくご利用頂くことは可能です。ただし、About ダイアログが表示され続け、ライセンスのない評価版と全く同じ動作になります。IP*Works! 製品はアクティブ化されなければなりません。さもないと、About ダイアログが表示されます。

IP*Works! をインストールするマシンがインターネットに接続されていません。この場合、どうやってアクティブ化すればよいですか?

IP*Works! がインストールされるマシンからインターネット接続ができない場合の製品アクティブ化には幾つかの方法があります。まず最初に、当該製品をアクティブ化するマシンの NODEID を調べます。続いて次のうちのいずれか1つを実行できます:
  1. 別のマシンからhttp://www.nsoftware.com/download/lic.aspxをアクセスし、表示されたフォームに適切な値を記入します。全てを記入することで、有効な REG (.reg) ファイルをダウンロードできるようになります。この REG ファイルを取得し、インターネット接続のできないマシンにコピーします。コピー先マシン上でこの REG ファイルをダブルクリックすることで、適切なキーが当該マシンのレジストリにインストールされます。
  2. support@nsoftware.com にメールを送り、製品をインストールしたいマシン用の有効な REG ファイルをリクエストすることができます。なおその際にはあなたのシリアル番号とキーの他、ソフトウェアをインストールしたいマシンの NODEID をお知らせください。

  3. 上記のいずれもご利用頂けない場合は、お電話にて製品アクティブ化のための追加オプションを弊社カスタマサポートまでお問い合わせください。



IP*Works! ソフトウェアを別のマシンに移転したらどうなりますか?

弊社ソフトウェアを、別の名称のマシンに移動させた場合、あるいは当該ソフトウェアを別のマシンに移転させた場合は、「移転通知」を弊社まで FAX にてご送付頂く必要があります。この FAX にはあなたの署名と、当該ソフトウェアが以前インストールされていたマシンから完全に削除されたことを言明する一文を含めてください。また、当該製品が新たにインストールされるマシンの NODEID も併せてご記載ください。

【訳注: 現在は移転通知はウェブフォーム (http://www.nsoftware.com/lic/transfer/) 経由で自動送信されますので、書面を FAX する必要はなくなりました。】

アプリケーションをコンパイルしビルドした場合、そのアプリケーションの配布先マシン全てでライセンスをアクティブ化しなければならないのですか?

いいえ、そのようなことは全く必要ありません。コンパイル対象アプリケーションをビルドする際に、アクティブ化はライセンスがインストールされる開発マシンでのみ必要となります。有効なアクティブ化済みライセンスでアプリケーションをコンパイルすると、ライセンス情報はアプリケーションに埋め込まれるので実行時のアクティブ化は全く必要ありません。

2008年4月14日月曜日

V8 .NET 製品のライセンスについて

V8 製品は、これまでの製品とは異なるランタイムライセンスルーチンを使用しています。このため、コンポーネントを標準的な使い方 (IDE 上でのフォームへのドラグ&ドロップ) 以外の方法でご利用いただく場合の処置が旧バージョン製品とは若干異なっています。

この件に関しては、インストール先に licensing.htm という名称で説明文書が残されています。参考のため、以下にその日本語訳を載せておきます。

IP*Works! V8 - ライセンス情報


標準 (ロイヤルティ・フリー) ライセンス
.NET および ASP.NET コンポーネントは Microsoft .NET ライセンス スキームを使用しています。.NET Compact Framework コンポーネントのライセンスについては、後述の ".NET CF" セクションをご覧ください。

Microsft .NET ライセンス スキームでは、Visual Studio .NET はフォームにライセンス済みコンポーネントをドロップすると、自動的に "licenses.licx" という名称のファイルを生成します。このファイルは埋め込みリソース (embedded resource) としてあなたのプロジェクトに自動的追加されます。このプロジェクトをビルドすると、ライセンス情報をコンパイルされたアセンブリに埋め込むのにこの licenses.licx ファイルが使用されます。(ただし ASP.NET 2.0 ではライセンス情報は既定値では別途用意されたファイル App_License.dll に埋め込まれます。)

フォームを使用しない、あるいはコンポーネントを動的に生成する場合にlicx ファイルを生成する最も簡単な方法は、別プロジェクトを1つ用意し、そのフォームにコンポーネントを1つドロップして licenses.licx を生成させ、その licenses.licx ファイルをフォームを使わないプロジェクトにコピーします。

要注意事項:
  • licx ファイルの名称は、必ず "licenses.licx" でなければなりません。また、このファイルは埋め込みリソースとしてプロジェクトに含められる必要があります。
  • 開発しているのがクラスライブラリである場合、そのライブラリを参照するプロジェクトにもこの .licx ファイルが埋め込みリソースとして含められている必要があります。さらに、そのプロジェクトは有効なライセンスがインストールされているマシン上でコンパイルされなければなりません。

.NET CF のライセンス
.NET Compact Framework コンポーネントは前述の Microsoft .NET ライセンス スキームを使用することができません。代わりに RuntimeLicense プロパティのみを使用します。ライセンス済みコンポーネントをフォームにドロップすると、デザイナ内 (および当該フォームの InitializeComponent 関数内) に RuntimeLicense という名称のプロパティが出現しライセンス文字列が割り当てられます。なお同じ RuntimeLicense プロパティ値を、当該製品の同一エディションに含まれる全てのコンポーネントでご利用頂けます。

ASP.NET 用シングルサーバ ライセンス - 共有ホスト上へのシングルサーバ ライセンスのインストール手順
ご購入頂いたライセンスが .NET Edition 用のシングルサーバ ライセンスであった場合、アプリケーションをサーバに配置して初めて起動した際に、当該システムに有効なライセンスが見つからなかった旨のエラーが表示されます。このエラーメッセージには製品アクティブ化ページへのリンクが含まれており、当該ページから keys.reg ファイルをダウンロードできます。この keys.reg ファイルにはあなた用のライセンスが格納されており、次の2通りの使い方が可能となっています:
  • keys.reg ファイルをサーバマシン上で実行できます。これにより、ライセンスが当該システムのレジストリにインストールされます。
  • あるいは、keys.reg ファイルを "nsoftware.XXXX.lic" (XXXX の部分は、製品ごとに固有の名称。通信系 Core 製品なら IPWorksWeb、SSL 製品なら IPWorksSSLWeb、ZIP 製品なら IPWorksZipWeb) にリネームし、あなたの web アプリケーションの /bin ディレクトリにコピーします。

トラブルシューティング
ライセンスを購入済なのに、ライセンス例外が発生する、あるいは "About" メッセージが表示される場合には以下の点をチェックしてみてください:
  • licenses.licx ファイルに問題はありませんか?当該ファイルがちゃんと存在しており、プロジェクトに含められており、正しい情報 (正しいコンポーネント名や正しいバージョン) が格納されていますか?
  • ビルド対象が ASP.NET 2.0 の場合は、licenses.licx ファイルを右クリックし「ランタイムライセンスのビルド (Build Runtime Licenses)」を選択し、当該プロジェクトをリビルドします。
  • コンポーネントの新ビルドをインストールしたらこの問題が発生するようになった場合は、licenses.licx ファイルに正しいバージョン情報が格納されていることを確認してください。バージョン情報が含まれていない licenses.licx は問題ありません。
  • クラスライブラリをビルドしているのであれば、そのライブラリを参照する側にも同じライセンスルールが適用されます。参照側アプリケーションにもこの licx ファイルが埋め込みリソースとして含まれており、またそのアプリケーションはライセンス済みマシン上でコンパイルされていますか?

ライセンスの移転
ライセンスを別のシステムに移転したい場合は、ライセンス移転申請書 (英文) を弊社までお送りください。この申請を行うことにより、別途のインストール行為をライセンス違反と誤認することがなくなります。

製品のアクティブ化に関しより詳しい情報が必要な場合は、弊社の「製品アクティブ化 FAQ (英文)」をご参照ください。

V8 Java 製品のライセンスについて

V8 製品は、これまでの製品とは異なるランタイムライセンスルーチンを使用しています。このため、コンポーネントを標準的な使い方 (IDE 上でのフォームへのドラグ&ドロップ) 以外の方法でご利用いただく場合の処置が旧バージョン製品とは若干異なっています。

この件に関しては、インストール先に licensing.htm という名称で説明文書が残されています。参考のため、以下にその日本語訳を載せておきます。

IP*Works! V8 - ライセンス情報


標準 (ロイヤルティ・フリー) ライセンス
IPWorks コンポーネントは実行時のライセンスチェックに RuntimeLicense という名称のプロパティを使用します。ライセンス済みコンポーネントをフォームにドロップすると、ライセンス文字列が自動的に RuntimeLicense プロパティに割り当てられます。お使いの IDE がこのプロパティを自動的には設定してくれない場合は、このプロパティをソースコードにハードコードすることで、ご利用いただくコンポーネントが正しくライセンスされたものであることを明示します。デザイナを使用しないのであれば、別のプロジェクトを作成してそこから RuntimeLicense プロパティの値を読み取り、その値をコピーしてあなたのアプリケーションにペーストします。なお、同一の製品の同一エディションに含まれる全てのコンポーネントに対し、同一の RuntimeLicense プロパティ値を使用できます。

シングルマシン ライセンス - サーバにシングルマシン ライセンスをインストールする手順
お買い上げ頂いたライセンスがシングルマシン ライセンスであった場合、ライセンスは上記のロイヤルティ・フリー ライセンスとは異なった動作をします。あなたのアプリケーションをサーバ上で初めて実行した際に、有効なライセンスがシステム上で見つからないというエラーが表示されるかもしれません。その場合には、 IPWorks セットアップ時に生成された .lic ファイル (IP*Works! 製品なら ipworks.lic、IP*Works! SSL 製品なら ipworksssl.lic、IP*Works! Zip 製品なら ipworkszip.lic) を、製品の .jar ファイル (IP*Works! 製品なら ipworks.jar、IP*Works! SSL 製品なら ipworksssl.jar, IP*Works! Zip 製品なら ipworkszip.jar) と共に配置する必要があります。この ipworks.lic ファイルはあなたのユーザホームディレクトリ配下の .nsoftware フォルダ内に格納されています。なお、ipworks.lic ファイルはそれを生成したマシンに結び付けられていますので、このファイルを他のマシンにコピーした場合は動作しません。

Unix/Linux およびその他のシステムへのライセンスのインストール
Windows 以外のシステムでは、各コンポーネントは ZIP ファイルにアーカイブされています。アーカイブをオープンし、製品の jar ファイル (IP*Works! 製品なら ipworks.jar、IP*Works! SSL 製品なら ipworksssl.jar, IP*Works! Zip 製品なら ipworkszip.jar) をダブルクリック (あるいはコマンド java -jar ipworks.jar 等を実行) してライセンスをアクティブ化します。なおローヤルティ・フリー ライセンスではこの手順は一度だけ、開発マシン上でのみ実行が求められるのみであり、実行時には各コンポーネントは RuntimeLicense プロパティに格納されたライセンスが使用されます(前述)。

トライアル版ライセンスをインストールする場合も、同じ手順で行います: 製品 jar ファイルをダブルクリック (あるいは java -jar ipworks.jar 等を実行) し、指示に従って処理を進めます。

ライセンスの移転
ライセンスを別のシステムに移転したい場合は、ライセンス移転申請書 (英文) を弊社までお送りください。この申請を行うことにより、別途のインストール行為をライセンス違反と誤認することがなくなります。

製品のアクティブ化に関しより詳しい情報が必要な場合は、弊社の「製品アクティブ化 FAQ (英文)」をご参照ください。

2008年4月11日金曜日

Delphi Edition のリプレース後エラーが発生する件

あるお客様から、Delphi Edition のトライアル版での評価終了後、製品版をインストールしたのだが下記のエラーが出るというお問い合わせを頂きました。

Undeclared Identifier IPWorksSSLLoadDRU
Undeclared Identifier IPWorksSSLFindFunc
Undeclared Identifier IPWorksSSLfreeDRU

このエラーは、旧バージョンの .pas ファイルが Delphi の Lib フォルダ内に残っている場合に発生します。この場合の対応策は以下の通りです。
  1. まず最初に、当該製品をアンインストールします。
  2. C:\Program Files\Borland\[Delphi Version]\Bin に移動し、"dclipwssl6.bpl" ファイルを削除します。
  3. C:\Program Files\Borland\[Delphi Version]\Lib に移動し、.dru および .pas という拡張子のファイルのうち当該コンポーネント用のもの (IP*Works! SSL なら "ips" で始まるもの) を全て削除します。
  4. 最後に IDE がクローズされていることを確認の上、製品版の setup を再度実行します。

FTP によるファイル転送とタイムスタンプ

FTP コンポーネントをお使いのお客様から、「ファイルをサーバにアップロードする際にクライアント側のタイムスタンプをサーバ側に反映できないか」というお問い合わせがありました。

FTP の仕様 (RFC959 および RFC1579) には残念ながらタイムスタンプを扱う機能は規定されておりません。このため、通常の FTP サーバ (特殊な拡張機能を実装されていない FTP サーバ) との間で転送されたファイルは、ファイルが転送された時点のタイムスタンプを持つようになっています。

どうしてもタイムスタンプを保持しなければならないような場合には、タイムスタンプを保持できるアーカイバ (tar や zip 等) でファイルをアーカイブして転送するようにします。この場合、アーカイブファイル自体のタイムスタンプは変更されますが、メンバーファイルのタイムスタンプは保持されておりメンバーファイルには展開時に元のタイムスタンプが付与されます。

アーカイブの作成や展開には、弊社の IP*Works! ZIP 製品をご利用いただけます。

2008年4月10日木曜日

FTP でサーバ側ファイルの存在をチェックする

先の記事ではサーバ側ディレクトリの存在の有無をチェックする方法を紹介しましたが、V8 製品にはサーバ側ファイルの存在をチェックする方法が用意されています。

V8 FTP および FTPS コンポーネントには FileExists プロパティが追加されています。RemoteFile プロパティに調べたいリモートファイル名を設定した後 FileExists プロパティを参照すると、FTP コマンド NLST を用いてサーバ上に当該ファイルが存在するかどうかをチェックします。そしてファイルが存在する場合は FileExists プロパティに true が、存在しない場合には false がセットされます。

なお FileExists でチェックできる対象は「ファイル」のみであり、「ディレクトリ」のチェックはできません。ディレクトリの存在のチェックは現状では先の記事の方法、またはそれに類する方法 (ListDirectoryLong() の戻り値を使って調べる方法) 等で行うことになります。

2008年4月8日火曜日

FTPS と Passive プロパティ

弊社の FTP コンポーネントでは、PORT (Active) モードと PASV (Passive) モードをサポートしており、切り替えは Passive プロパティの値を変更することで行います。(Passive の値が true の時 PASV モード。)

FTPS コンポーネントにもこの Passive プロパティが存在していますが、V6 製品では Passive に false を設定しても必ず PASSIVE モードで接続されます。これはファイアウォール使用時に SSL 接続を PORT モードで行うことは困難だからです。(特に NAT ファイアウォールの場合、リモート側からのデータコネクションで使用するポートを特定することが困難。) このため、SSL 製品のFTPS コンポーネントでは Passive プロパティは互換性のため残したまま、その値の如何にかかわらず常に Passive モードで接続するようになっていました。

ただし、SSL V8 製品では再び Passive プロパティの設定が有効となり、SSL 製品でも PORT モードと PASV モードを選択使用することが可能となっています。これは、Config() で上記の問題に対応できるようになったためです。このために使用する設定は以下の通りです。
  • ftp.Config("PortRange=...");
  • ftp.Config("ActiveModePORTAddress=...");

PortRange 設定により FTPS コンポーネントが PORT モード時にリスンする TCP/IP ポートの範囲を指定し、ActiveModePORTAddress 設定により、PORT コマンドのパラメータとしてサーバ側に通知する IP アドレスとポートを設定します。これにより、PORT コマンドでサーバに通知するアドレスとポートをクライアント PC のものではなくファイアウォールの外側アドレス (およびポート) を設定することが可能となります。そして、ファイアウォールの当該インターフェイスおよびポートへの外部からの接続を、当該クライアントにフォワードするように設定します。

以上により、ファイアウォールがパケットの書き換えを行うことなく外部のサーバと FTP(S) の PORT モード接続を行うことが可能となります。

各設定の詳細については、製品添付のヘルプをご参照ください。

IP*Works! Zip で扱う tar フォーマット

tar ファイルには主として以下のような複数のフォーマットがあります。
  • V7 (Version 7 Unix)
  • 旧 gnu
  • 新 gnu
  • POSIX.1-1988 (ustar)
  • POSIX.1-2001 (posix)
これらのうち、もっとも基本的なものは V7 であり、それ以外のものは V7 のヘッダフォーマットを拡張するか、全く異なる構造になっています。

弊社の tar コンポーネントでは V7 フォーマットと、(本来の V7 にはない) シンボリックリンクの検出機能をサポートしています。その他のフォーマットの場合は、当該フォーマットが V7 の上位互換であり、拡張機能を使用していない部分 (長いファイル名形式や拡張ファイルタイプ) に関しては読み取りおよび展開可能です。

また、弊社製品は他の Windows 版 tar アーカイバ、例えば WinZIP や WinRAR 同様、ファイルの保全および交換を目的としており、取り扱い可能なファイルタイプは
  • 通常のファイル (regular file)
  • 通常のディレクトリ (regular directory)
  • シンボリックリンク

に限定されている点に注意してください。ハードリンクやスペシャルファイル、ボリュームラベル等は WinZIP や WinRAR 同様取り扱うことはできません。
 IP*Works! (tar)WinZIPWinRAR
通常のファイル
ハードリンク×××
シンボリックリンク△1××
キャラクタスペシャルファイル×××
ブロックスペシャルファイル×××
ディレクトリ
FIFOスペシャルファイル×××

△1: 現時点では作成時のみ利用可能。展開時は未サポート。


【注】この表は私が個人的に片手間に調べたものであり、各製品の公式なアナウンスではありません。上記で×になっている機能は標準では利用できないだけで、オプション設定等により利用可能となる可能性もあります。詳細については実際の各製品をご参照ください。

2008年4月4日金曜日

パケットダンプツールについて

TCP/IP 通信ソフトウェアを作成している場合、不具合のチェックにはパケットダンプが必要なことがあります。

弊社のサポートでも、状況の切り分けや確認のためにパケットダンプデータを添えて頂くことで対応が早くなる場合があります。

そのような場合によく使われるツールに Wireshark があります。このソフトウェアは Gnu GPL に基づき配布されているフリーソフトウェアです。

このツールを使用してパケットデータをキャプチャし、フィルタリングして絞り込み、パケットデータの階層表示と16進表示を使って詳細をかなり容易に調査することができます

もしパケットダンプツールをお持ちでないのであれば、Wireshark をお勧めします。