A library to detect your local IP address via WebRTC on the web page.
All modern browsers now require special flags to allow leaking local IP address.
Set enable-webrtc-hide-local-ips-with-mdns
to disabled
on chrome://flags
page.
Or run chrome with arguments:
--flag-switches-begin --disable-features=WebRtcHideLocalIpsWithMdns --flag-switches-end
Set media.peerconnection.ice.obfuscate_host_addresses
to false
on about:config
page.
Set Disable ICE Candidate Restrictions
in Developer
menu.
https://vitalets.github.io/webrtc-ips/demo/
Please ensure that you enabled browser flags from previous section
npm i webrtc-ips
import {getIPs, getIPv4, getIPv6} from 'webrtc-ips';
const ips = await getIPs();
// => [{address: '95.108.174.12', v6: false}, {address: '2a02:6b8::408:5830:47a6:d045:a9ac', v6: true}]
// You can pass in your custom stun server urls
const ips = await getIPs({ urls: "stun:stun.stunprotocol.org:3478" });
// => [{address: '95.108.174.12', v6: false}, {address: '2a02:6b8::408:5830:47a6:d045:a9ac', v6: true}]
const ipv4 = await getIPv4();
// => '95.108.174.12'
const ipv6 = await getIPv6();
// => '2a02:6b8::408:5830:47a6:d045:a9ac'
This is a fork of original diafygi/webrtc-ips project with refactored source code, added tests and published to npm.
MIT