Firefox を使用して SSH バナーを読み取ろうとしています。すなわち。SSH サーバーに最初に接続すると、サーバーはサーバー ソフトウェアを識別するバナーを送信し、ユーザーはクライアント ソフトウェアを識別するバナーを SSH サーバーに送信します。
そのために、次の URL の例を使用しています。
Firefox拡張javascriptにnsiClientSocketはありますか?
これが私のコードです:
'use strict';
const {Cc,Ci} = require("chrome")
const prefs = require("simple-prefs");
exports.main = function(options,callbacks) {
var transport = Components.classes["@mozilla.org/network/socket-transport-service;1"]
.getService(Components.interfaces.nsISocketTransportService)
.createTransport(null, 0, "localhost", 22, null);
//var output = transport.openOutputStream(0, 0, 0);
var input = transport.openInputStream(0, 0, 0);
var data = "test";
dump(stream.read());
//stream.write(data, data.length);
//stream.close();
dump("all done!");
};
これで cfx xpi を実行すると、次のようになります。
The following lines from file C:\path\to\lib\main.js:
8: var transport = Components.classes["@mozilla.org/network/socket-transport-service;1"]
9: .getService(Components.interfaces.nsISocketTransportService) use 'Components' to access chrome authority. To do so, you need to add a line somewhat like the following:
const {Cc,Ci} = require("chrome");
Then you can use any shortcuts to its properties that you import from the 'chrome' module ('Cc', 'Ci', 'Cm', 'Cr', and 'Cu' for the 'classes', 'interfaces', 'manager', 'results', and 'utils' properties, respectively. And `components` for `Components` object itself).
だから私は代わりにこれを試します:
'use strict';
const {Cc,Ci} = require("chrome")
const prefs = require("simple-prefs");
exports.main = function(options,callbacks) {
var transport = components.classes["@mozilla.org/network/socket-transport-service;1"]
.getService(interfaces.nsISocketTransportService)
.createTransport(null, 0, "localhost", 22, null);
//var output = transport.openOutputStream(0, 0, 0);
var input = transport.openInputStream(0, 0, 0);
var data = "test";
dump(stream.read());
//stream.write(data, data.length);
//stream.close();
dump("all done!");
};
すなわち。私は Components コンポーネント (小文字) と Components.interfaces をただのインターフェースにしています。しかし、コンソールに次のエラーが表示されます。
var transport = components.classes["@mozilla.org/network/socket-transport-service;1"]
ReferenceError: components is not defined
何か案は?