2008年3月27日木曜日

特定のマシンの MAC アドレスを得る方法

[http://www.nsoftware.com/kb/showentry.aspx?entry=09260713]

該当製品:


  • IP*Works!

現象:


特定のマシンの MAC アドレスを取得するにはどうすれば良いでしょうか?

解決法:


まず、IPInfo コンポーネントの GetMAC メソッドを用いる方法があります。
string macaddress = ipinfo.GetMAC("10.0.1.1");

【訳註: GetMAC メソッドは Windows 製品でのみ利用可能です。また、取得可能な対象は、同一 LAN 上の同一サブネットに属する機器に限定されます。】

別の方法としては、SNMP を用いる方法があります。この場合はまず相手デバイス上のインターフェイス数を get リクエストで取得します (ifEntryNum - 1.3.6.1.2.1.2.1)。次に各インターフェイスに対してその MAC アドレスを get リクエストで取得します (ifPhysAddress - 1.3.6.1.2.1.2.2.1.6)。この方法を使う場合、(ifEntry テーブルには幾つか子ノードを持っており) 当該インターフェイスについて MAC アドレス以外にも当該デバイスのタイプ (ifEntryType - 1.3.6.1.2.1.2.2.1.3) 等様々な情報を取得することができます。

2008年3月21日金曜日

HTML ページ内における OCX ライセンシング

[http://www.nsoftware.com/kb/showentry.aspx?entry=09229702]

該当製品:


  • IP*Works!
  • IP*Works! SSL


現象:


OCX を使用して HTML ページを作成していますが、ユーザ側で Internet Explorer を使用して当該ページを表示すると About ダイアログが表示されてしまいます。

解決法:


Internet Explorer 内の ActiveX コンポーネントにライセンスを付与するためには、Microsoft の LPK ツールを使用する必要があります。また、lpk ファイルは license.lpk という名称でなければなりません。

もし実際に動く実例が必要な場合は、弊社サポートまで email にてご連絡ください。

IP*Works! 製品の ActiveX コンポーネントは ActiveX Control Licensing Mechanisum を実装しています。Web 上でランタイムライセンスを付与されたコントロールを配布するためには、適切なランタイムライセンスファイル (LPK ファイル) を生成し、ウェブページ内に含める必要があります。そうでないと例え当該コントロールをダウンロードしインストールしたとしても当該コントロールはユーザ側マシンでは表示されません。コントロールに対するランタイムライセンスは、当該コントロールに対する有効な開発者ライセンスを持つ人のみが生成することができます。ウェブページにランタイムライセンスを付与済みのコントロールを含める具体的な方法につきましては、ActiveX Software Development Kit (SDK) の「Licensing ActiveX Controls」節を参照して下さい。ActiveX SDK のダウンロードは http://www.microsoft.com/ から行うことができます。以下に SDK 文書からの抜粋で、ウェブページにランタイムライセンス付与済みにコントロールを配布するための方法を示しておきます。

ライセンスパッケージは、既存の <OBJECT> タグ (要素) を使用して HTML ファイルに記載されなければなりません。ライセンスパッケージは、ランセンスマネージャオブジェクトにより解釈され、HTML 上の他のコントロールにライセンスを受け渡します。ライセンスパッケージオブジェクトは、当該ライセンスを必要とする全てのオブジェクトより前に当該 HTML ページに埋め込まれていなければなりません。HTML へのライセンスパッケージ埋め込みのための構文は以下のようになります。
      <OBJECT CLASSID = "clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
<PARAM NAME="LPKPath" VALUE="relative URL to .LPK file">
</OBJECT>

注意: Internet Explorer 3.0 は、ある HTML ページ内の最初のライセンスパッケージのみを有効とみなします。もし当該ページ内で複数のコントロールを使用しているにもかかわらず、最初に見つかったライセンスパッケージにそれらに対するライセンスが含まれていない場合、該当するコントロールはインスタンス化に失敗するでしょう。

ActiveX SDK には自動的に LPK ファイルを生成するユーティリティ (LPK_TOOL.EXE) が含まれています。

詳細に関しては以下の URL を参照して下さい。
http://www.microsoft.com/workshop/components/activex/licensing.htm

2008年3月19日水曜日

C++ Builder におけるライセンスについて

[http://www.nsoftware.com/kb/showentry.aspx?entry=05120501]

該当製品:


  • IP*Works!
  • IP*Works! S/MIME
  • IP*Works! SSL


現象:


C++ Builder Edition のライセンスを購入済みですが、未だに試用版の "About" メッセージダイアログが表示されます。

解決法:


C++ Builder で動的にコンポーネントを生成しているのであれば、以下のコードをご利用ください。
TipwIPPort* ipp;
ipp = new TipwIPPort(NULL, TRUE);

原則として、コンストラクタの第2引数には TRUE を指定すべきです。

.NET Windows サービスアプリケーションのライセンス

[http://www.nsoftware.com/kb/showentry.aspx?entry=04300306]

該当製品:

  • /n software Red Carpet Subcription
  • IP*Works!
  • IP*Works! EDI
  • IP*Works! EDI AS2 Connector
  • IP*Works! S/MIME
  • IP*Works! S/Shell
  • IP*Works! Secure SNMP
  • IP*Works! SSH
  • IP*Works! SSL
  • IP*Works! Zip


現象:


Windows サービスアプリケーション内でもコンポーネントを利用できますか?

解決法:


はい、ご利用いただけます。ただしデモ版をご利用の場合、サービスのプロパティを変更してライセンスダイアログを表示できるようにしておく必要があります。これを行うには以下のようにします。
  1. MMC を起動します。
  2. "Services" スナップインを追加します。
  3. あなたの作成したサービスを探し、右クリックして "properties" を選択します。
  4. "Log On" タブをクリックします。
  5. "Allow service to interact with desktop" と書かれたチェックボックスをチェックします。

これにより当該サービスからのモーダルメッセージボックスがデスクトップに表示されるようになります。

弊社の .NET Edition のコンポーネントは Microsoft 社の .NET ライセンシング・スキームを使用しています。これはつまり、ライセンス済みのコンポーネントをフォームにドロップすると Visual Studio .NET は自動的に "licenses.licx" という名称のファイルを生成し、該当するプロジェクトに埋め込みリソース (embedded resource) として自動的に追加することを意味します。Visual Studio .NET 内でライセンス済みコンポーネントが動作するためには、この licx ファイルが必要となります。

あなたのアプリケーションがフォームを使用しない、あるいはコンポーネントを動的に生成するものである場合は、licenses.licx を手で作成することもできます。このファイルの各行は、それぞれがライセンス済みコンポーネント1個に対応しています。そしてそれぞれの行には当該コンポーネント名とライブラリ名が書かれています。例えば、あなたが利用するコンポーネントが nsoftware.IPWorks.dll の NNTP コンポーネントであれば、licx ファイルは次のようになっているでしょう:

nsoftware.IPWorks.Nntp, nsoftawre.IPWorks

なお既定値では Visual Studio はこれ以外の情報も付加します。もしライセンス上の問題が発生した場合はそれらの余分な情報を除去し、上のように2つの要素のみが含まれるようにしてみて下さい。

重要な注意事項:
  • licx ファイルは必ず "licenses.licx" という名称でなければなりません。また、当該プロジェクトに埋め込みリソースとして含まれていなければなりません。
  • 開発対象がクラスライブラリである場合は、当該クラスライブラリを参照する側のプロジェクトにも .lixc ファイルが埋め込みリソースとして含まれている必要があり、かつ参照する側は有効なライセンスがインストールされているマシンでコンパイルされる必要があります。
  • そして最後に注意する点としては、Visual Studio .NET には不具合があり、当該プロジェクトの名称に空白文字 " " が含まれていると licx ファイルを正しくマッチングすることができません。従ってもしプロジェクト名に空白文字が含まれている場合は、それらを除去するか別の文字に置換してからプロジェクトを再ビルドしてみて下さい。

.NET におけるライセンスについて

[http://www.nsoftware.com/kb/showentry.aspx?entry=01020301]

該当製品

  • IBiz Amazon Integrator .NET Edition
  • IBiz E-Banking Integrator .NET Edition
  • IBiz E-Payment Integrator
  • IBiz FDMS Integrator .NET Edition
  • IBiz FedEx Integrator .NET Edition
  • IBiz Paymentech Integrator .NET Edition
  • IBiz PayPal Integrator .NET Edition
  • IBiz QuickBooks Integrator
  • IBiz USPS Integrator .NET Edition
  • IP*Works!
  • IP*Works! S/MIME
  • IP*Works! S/Shell
  • IP*Works! Secure SNMP
  • IP*Works! SSL
  • IP*Works! Zip


現象:


.NET エディションの製品ライセンスを購入したにもかかわらず、"About" ダイアログが表示されてしまいます。

解決法:


弊社の .NET Edition コンポーネントは Microsoft 社の .NET ライセンシング・スキームを使用しています。これはつまり、ライセンス済みのコンポーネントがフォーム上にドラッグ&ドロップされた場合は常に Visual Studio.NET は自動的に "licenses.licx" という名称のファイルを作成し、当該プロジェクトに埋め込みリソース (embedded resource) として自動追加されることを意味します。Visual Studio .NET 上でライセンス済みコンポーネントが動作するには、この licx ファイルが必要となります。

なお、フォームを使用しない場合、あるいはコンポーネントを動的に生成して使用する場合は、licenses.licx ファイルを手で作成することができます。このファイルはライセンス済みの各コンポーネントに対応する行から構成されており、各行にはコンポーネント名とライブラリ名が格納されます。例えば nsoftware.IPWorks.dll の NNTP コンポーネントを使用するのであれば、licx ファイルは以下のようになるでしょう:

nsoftware.IPWorks.Nntp, nsoftware.IPWorks

既定値では Visual Studio は他の情報 (バージョンやカルチャ等) も記載しますが、ライセンスで問題が発生する場合はこれらの付帯情報を削除して上記2項目のみが含まれるようにすべきです。

重要事項:

  • licx ファイルは "licenses.licx" という名称でなければならず、かつ当該プロジェクトに埋め込みリソース (embedded resource) として含まれなければなりません。
  • クラスライブラリを開発する場合は、参照する側のプロジェクトにもこのlicx ファイルが埋め込みリソースとして含まれていなければならず、かつ有効なライセンスがインストールされているマシン上でコンパイルされなければなりません。
  • そして最後にもうひとつ注意すべき点があります。Visual Studio には、プロジェクト名称に空白文字 (" ") が含まれている場合、正しく licx ファイルを対応付けることができないという問題点があります。プロジェクト名に空白文字が含まれている場合はそれらを削除するか、別の文字に置換してからプロジェクトをリビルドしてください。

本アーカイブについて

このブログには、弊社で提供するナレッジベースを個人的に日本語化したものを随時掲載していきます。

また、ここに投稿される日本語訳はあくまでも私が個人的に訳したものであり、/n software inc. により公式に認定されたものではなく内容の正確性や正当性を保証するものではありません。

内容は随時チェックしているつもりですが、日本語訳掲載後にオリジナルのデータベースが更新されることもあります。内容に違いがある場合はオリジナルの英語版が優先されます。