/** * Module dependencies. */ var net = require('net'); var ip = require('ip'); /** * Module exports. */ module.exports = myIpAddress; myIpAddress.async = true; /** * Returns the IP address of the host that the Navigator is running on, as * a string in the dot-separated integer format. * * Example: * * ``` js * myIpAddress() * // would return the string "198.95.249.79" if you were running the * // Navigator on that host. * ``` * * @return {String} external IP address */ function myIpAddress (fn) { // 8.8.8.8:53 is "Google Public DNS": // https://developers.google.com/speed/public-dns/ var socket = net.connect({ host: '8.8.8.8', port: 53 }); socket.once('error', function(err) { // if we fail to access Google DNS (as in firewall blocks access), // fallback to querying IP locally fn(null, ip.address()); }); socket.once('connect', function () { socket.removeListener('error', fn); var ip = socket.address().address; socket.destroy(); fn(null, ip); }); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
test | Folder | 0755 |
|
|
.npmignore | File | 61 B | 0644 |
|
.travis.yml | File | 318 B | 0644 |
|
CHANGELOG.md | File | 6.03 KB | 0644 |
|
README.md | File | 3.04 KB | 0644 |
|
dateRange.js | File | 2.28 KB | 0644 |
|
dnsDomainIs.js | File | 699 B | 0644 |
|
dnsDomainLevels.js | File | 561 B | 0644 |
|
dnsResolve.js | File | 638 B | 0644 |
|
index.js | File | 3.49 KB | 0644 |
|
isInNet.js | File | 1.27 KB | 0644 |
|
isPlainHostName.js | File | 439 B | 0644 |
|
isResolvable.js | File | 425 B | 0644 |
|
localHostOrDomainIs.js | File | 1.1 KB | 0644 |
|
myIpAddress.js | File | 1.01 KB | 0644 |
|
package.json | File | 2.48 KB | 0644 |
|
shExpMatch.js | File | 997 B | 0644 |
|
timeRange.js | File | 3.19 KB | 0644 |
|
weekdayRange.js | File | 2.14 KB | 0644 |
|