Então, isso provavelmente não funciona em muitos casos, mas eis o que eu criei:
-
Execute um serviço na máquina host que ouça as URLs recebidas.
Eu usei o NodeJS aqui sem nenhum motivo específico; Tenho certeza de que as linguagens de script mais populares funcionam.
var http = require('http'), querystring = require('querystring'), cp = require('child_process'), ip = '127.0.0.1', port = 9090, links_opened = 0; //urlopen curl --data "url=%U" 10.0.2.2:9090 %U <- cmd for ttytter http.createServer(function (req, res) { if (req.method == 'POST') { req.on('data', function(chunk) { //get URL var _post = querystring.parse(chunk.toString()), //url has extra quotes for some reason: url_to_open = _post.url.match(/^'(.*)'$/)[1], //these three lines are just for nicely numbered console history (up to 999) link_ind = ++links_opened + ".", ln = link_ind + Array(5 - link_ind.length).join(' ');//pad it console.log( ln + url_to_open); //open tab cp.spawn('c:\Program Files (x86)\Mozilla Firefox\firefox.exe', ['-new-tab', url_to_open]); }); } req.on('end', function() { //respond w/204 (success, no output) res.writeHead(204); res.end(); }); }).listen(port, ip); console.log('Server running at http://' + ip + ":" + port);
-
Envie URLs do host para o convidado (usei cURL).
No meu
.ttytterrc
, defino a opção urlopen assim:urlopen curl --data "url=%U" 10.0.2.2:9090 %U
(% U é expandido para a URL: consulte urlopen ).
Eu chamo / url < tweet ID & gt ;, ele envia uma solicitação para minha máquina host e o serviço do nó abre uma nova guia na minha janela atual do navegador. Tenho certeza de que há uma série de possíveis problemas de segurança aqui, mas, dadas as configurações de firewall adequadas, as verificações de IP no script nodeJS, etc., elas não são showstoppers. De qualquer forma, funciona para mim!