text: 'use strict';
  const common = require('../common');
  
  common.skipIfInspectorDisabled();
  
  const assert = require('assert');
  const { NodeInstance } = require('../common/inspector-helper.js');
  const os = require('os');
  
  const ip = pickIPv4Address();
  
  if (!ip)
    common.skip('No IP address found');
  
  function checkIpAddress(ip, response) {
    const res = response[0];
    const wsUrl = res.webSocketDebuggerUrl;
    assert.ok(wsUrl);
    const match = wsUrl.match(/^ws:\/\/(.*):\d+\/(.*)/);
    assert.strictEqual(ip, match[1]);
    assert.strictEqual(res.id, match[2]);
    assert.strictEqual(ip, res.devtoolsFrontendUrl.match(/.*ws=(.*):\d+/)[1]);
  }
  
  function pickIPv4Address() {
    for (const i of [].concat(...Object.values(os.networkInterfaces()))) {
      if (i.family === 'IPv4' && i.address !== '127.0.0.1')
        return i.address;
    }
  }
  
  async function test() {
    const instance = new NodeInstance('--inspect-brk=0.0.0.0:0');
    try {
      checkIpAddress(ip, await instance.httpGet(ip, '/json/list'));
    } catch (error) {
      if (error.code === 'EHOSTUNREACH') {
        common.printSkipMessage('Unable to connect to self');
      } else {
        throw error;
      }
    }
    instance.kill();
  }
  
  test().then(common.mustCall());
  