Skip to content

Ability to obtain the default gateway #5417

Description

@silverwind

I think it would be very useful to have a method on os which returns

  • the default gateway of the machine, v4 and v6
  • the default gateway's network interface name (if any)

Basically, something like @indutny's netroute but cross-platform. The ability to access this information seems critical for applications that do low-level things on the local network and I think this justifies its existance in core. My personal use case would be to automatically determine the right interface to do packet capture on.

Right now, the only way (without native modules) to obtain the information in a cross-platform way would be parsing the output of various commands, which is of course slow and error-prone.

@bnoordhuis: the request has been brought up in 2012 and you rejected it as bloat. Does this still stand?

cc: @sindresorhus (sindresorhus/internal-ip#5)

Activity

  1. added
    osIssues and PRs related to the os subsystem.
    feature requestIssues requesting new Node.js features.
    on Feb 24, 2016
  2. changed the title [-]Ability to obtain the default gateway and related information[/-] [+]Ability to obtain the default gateway[/+] on Feb 24, 2016
  3. bnoordhuis commented on Feb 24, 2016

    @bnoordhuis
    Member

    It would have to be implemented in libuv first and it would need to be generic enough to be useful. It should provide more than just the defaults and do something sane on multi-homed machines. Routing can be pretty complicated so there's a lot of potential for complexity.

  4. added
    libuvIssues and PRs related to the libuv dependency or the uv binding.
    on Feb 24, 2016
  5. indutny commented on Feb 25, 2016

    @indutny
    Member

    @silverwind IMO, this is complicated non-obvious thing. Don't know if libuv may want to have it. Routing is hard.

  6. silverwind commented on Feb 25, 2016

    @silverwind
    ContributorAuthor

    Yes, I see networkInterfaces as kind of borderline for libuv's purpose of being a IO library, this one may be too.

  7. jasnell commented on May 4, 2016

    @jasnell
    Member

    Is there reason to keep this one open? given the responses it's not likely to be something we'll actually get. Perhaps open a feature request in libuv instead?

  8. silverwind commented on May 4, 2016

    @silverwind
    ContributorAuthor

    I guess we can close it. It's still a desireable future in my eyes, but probably too hard to get right.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestIssues requesting new Node.js features.libuvIssues and PRs related to the libuv dependency or the uv binding.osIssues and PRs related to the os subsystem.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions