@adamlui/geolocate 1.0.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -37
- package/dist/cli.min.js +9 -10
- package/dist/geolocate.min.js +3 -3
- package/docs/README.md +24 -37
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
### Fetch IP geolocation data from the CLI.
|
|
4
4
|
|
|
5
|
-
<a href="https://github.com/adamlui/js-utils/releases/tag/geolocate-
|
|
5
|
+
<a href="https://github.com/adamlui/js-utils/releases/tag/geolocate-2.0.0"><img height=31 src="https://img.shields.io/badge/Latest_Build-2.0.0-44cc11.svg?logo=icinga&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
6
6
|
<a href="https://www.npmjs.com/package/@adamlui/geolocate?activeTab=code"><img height=31 src="https://img.shields.io/npm/unpacked-size/%40adamlui%2Fgeolocate?style=for-the-badge&logo=ebox&logoColor=white&labelColor=464646&color=blue"></a>
|
|
7
|
-
<a href="https://github.com/adamlui/js-utils/blob/geolocate-
|
|
7
|
+
<a href="https://github.com/adamlui/js-utils/blob/geolocate-2.0.0/geolocate/dist/geolocate.min.js"><img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/geolocate/dist/geolocate.min.js?branch=geolocate-2.0.0&label=Minified%20Size&logo=databricks&logoColor=white&labelColor=464646&color=ff69b4&style=for-the-badge"></a>
|
|
8
8
|
<a href="https://sonarcloud.io/component_measures?metric=new_vulnerabilities&id=adamlui_js-utils:geolocate/src/geolocate.js"><img height=31 src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsonarcloud.io%2Fapi%2Fmeasures%2Fcomponent%3Fcomponent%3Dadamlui_js-utils%3Ageolocate%2Fsrc%2Fgeolocate.js%26metricKeys%3Dvulnerabilities&query=%24.component.measures.0.value&style=for-the-badge&logo=sonarcloud&logoColor=white&labelColor=464646&label=Vulnerabilities&color=gold"></a>
|
|
9
9
|
|
|
10
10
|
<br>
|
|
@@ -40,7 +40,7 @@ $ npm install @adamlui/geolocate
|
|
|
40
40
|
The basic **global command** is:
|
|
41
41
|
|
|
42
42
|
```
|
|
43
|
-
$ geolocate [
|
|
43
|
+
$ geolocate [ip1] [ip2] [...]
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
Sample output:
|
|
@@ -66,7 +66,7 @@ Info commands:
|
|
|
66
66
|
|
|
67
67
|
## 🔌 Importing the API
|
|
68
68
|
|
|
69
|
-
You can also import **geolocate** into your app to use its API
|
|
69
|
+
You can also import **geolocate** into your app to use its main API method.
|
|
70
70
|
|
|
71
71
|
### <img height=18 src="https://i.imgur.com/JIeAdsr.png"> Node.js
|
|
72
72
|
|
|
@@ -89,14 +89,14 @@ const geo = require('@adamlui/geolocate');
|
|
|
89
89
|
#### <> HTML script tag:
|
|
90
90
|
|
|
91
91
|
```html
|
|
92
|
-
<script src="https://cdn.jsdelivr.net/npm/@adamlui/geolocate@
|
|
92
|
+
<script src="https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.0/dist/geolocate.min.js"></script>
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
#### ES6:
|
|
96
96
|
|
|
97
97
|
```js
|
|
98
98
|
(async () => {
|
|
99
|
-
await import('https://cdn.jsdelivr.net/npm/@adamlui/geolocate@
|
|
99
|
+
await import('https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.0/dist/geolocate.min.js');
|
|
100
100
|
// Your code here...
|
|
101
101
|
})();
|
|
102
102
|
```
|
|
@@ -105,7 +105,7 @@ const geo = require('@adamlui/geolocate');
|
|
|
105
105
|
|
|
106
106
|
```js
|
|
107
107
|
...
|
|
108
|
-
// @require https://cdn.jsdelivr.net/npm/@adamlui/geolocate@
|
|
108
|
+
// @require https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.0/dist/geolocate.min.js
|
|
109
109
|
// ==/UserScript==
|
|
110
110
|
|
|
111
111
|
// Your code here...
|
|
@@ -113,7 +113,7 @@ const geo = require('@adamlui/geolocate');
|
|
|
113
113
|
|
|
114
114
|
<br>
|
|
115
115
|
|
|
116
|
-
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@
|
|
116
|
+
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@2.0.0` version tag from the jsDelivr URL: `https://cdn.jsdelivr.net/npm/@adamlui/geolocate/dist/geolocate.min.js`
|
|
117
117
|
|
|
118
118
|
<br>
|
|
119
119
|
|
|
@@ -121,9 +121,9 @@ const geo = require('@adamlui/geolocate');
|
|
|
121
121
|
|
|
122
122
|
## 📋 API usage
|
|
123
123
|
|
|
124
|
-
### `locate([
|
|
124
|
+
### `locate([ips, options])`
|
|
125
125
|
|
|
126
|
-
Asynchronous method to fetch geolocation data for
|
|
126
|
+
Asynchronous method to fetch geolocation data for each `ip` passed in an array, returned as an array of data objects:
|
|
127
127
|
|
|
128
128
|
```js
|
|
129
129
|
// Using await syntax
|
|
@@ -154,26 +154,13 @@ geo.locate('8.8.8.8').then(location => {
|
|
|
154
154
|
*/
|
|
155
155
|
```
|
|
156
156
|
|
|
157
|
-
**💡 Note:** If no
|
|
158
|
-
|
|
159
|
-
#
|
|
160
|
-
|
|
161
|
-
### `getOwnIP()`
|
|
157
|
+
**💡 Note:** If no IPv4 address is passed, your own one will be used.
|
|
162
158
|
|
|
163
|
-
|
|
159
|
+
Available options (passed as object properties):
|
|
164
160
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const ip = await geo.getOwnIP();
|
|
169
|
-
console.log(ip); // outputs your IP
|
|
170
|
-
})();
|
|
171
|
-
|
|
172
|
-
// Using .then() syntax
|
|
173
|
-
geo.getOwnIP().then(ip => {
|
|
174
|
-
console.log(ip); // outputs your IP
|
|
175
|
-
});
|
|
176
|
-
```
|
|
161
|
+
Name | Type | Description | Default Value
|
|
162
|
+
----------|---------|-----------------------------------|---------------
|
|
163
|
+
`verbose` | Boolean | Show logging in console/terminal. | `true`
|
|
177
164
|
|
|
178
165
|
<br>
|
|
179
166
|
|
|
@@ -198,19 +185,19 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
198
185
|
### <img height=21px src="https://i.imgur.com/kvf7fXm.png"> [generate-ip](https://js-utils.com/generate-ip) <a href="https://github.com/toolleeo/cli-apps#networking"><img height=18 src="https://awesome.re/mentioned-badge.svg"></a>
|
|
199
186
|
|
|
200
187
|
> Randomly generate, format, and validate IPv4/IPv6 addresses.
|
|
201
|
-
<br>[Install](https://
|
|
202
|
-
[Readme](https://
|
|
203
|
-
[API usage](https://
|
|
204
|
-
[CLI usage](https://
|
|
188
|
+
<br>[Install](https://docs.js-utils.com/generate-ip/#-installation) /
|
|
189
|
+
[Readme](https://docs.js-utils.com/generate-ip/#readme) /
|
|
190
|
+
[API usage](https://docs.js-utils.com/generate-ip/#-api-usage) /
|
|
191
|
+
[CLI usage](https://docs.js-utils.com/generate-ip/#-command-line-usage) /
|
|
205
192
|
[Discuss](https://js-utils.com/discussions)
|
|
206
193
|
|
|
207
|
-
### [🔒 generate-pw](../generate-pw)
|
|
194
|
+
### [🔒 generate-pw](../generate-pw) <a href="https://github.com/toolleeo/cli-apps#password-managers"><img height=18 src="https://awesome.re/mentioned-badge.svg"></a>
|
|
208
195
|
|
|
209
196
|
> Randomly generate, strengthen, and validate cryptographically-secure passwords.
|
|
210
|
-
<br>[Install](https://
|
|
211
|
-
[Readme](https://
|
|
212
|
-
[API usage](https://
|
|
213
|
-
[CLI usage](https://
|
|
197
|
+
<br>[Install](https://docs.js-utils.com/generate-pw/#-installation) /
|
|
198
|
+
[Readme](https://docs.js-utils.com/generate-pw/#readme) /
|
|
199
|
+
[API usage](https://docs.js-utils.com/generate-pw/#-api-usage) /
|
|
200
|
+
[CLI usage](https://docs.js-utils.com/generate-pw/#-command-line-usage) /
|
|
214
201
|
[Discuss](https://js-utils.com/discussions)
|
|
215
202
|
|
|
216
203
|
<br>
|
package/dist/cli.min.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* © 2024 Adam Lui under the MIT license.
|
|
4
|
-
* Source: https://
|
|
5
|
-
* Documentation: https://
|
|
4
|
+
* Source: https://code.js-utils.com/geolocate
|
|
5
|
+
* Documentation: https://docs.js-utils.com/geolocate
|
|
6
6
|
*/
|
|
7
|
-
(async()=>{const s="@adamlui/geolocate",e=require(__dirname.match(/src/)?"./geolocate":"./geolocate.min"),
|
|
7
|
+
(async()=>{const s="@adamlui/geolocate",e=require(__dirname.match(/src/)?"./geolocate":"./geolocate.min"),n=require("fs"),i=require("path"),r=require("child_process")["execSync"],o="[0m",t="[1;33m",l="[1;97m",c={},a={flags:{quietMode:/^--?q(?:uiet)?(?:-?mode)?$/},infoCmds:{help:/^--?h(?:elp)?$/,version:/^--?ve?r?s?i?o?n?$/}};if(process.argv.forEach(o=>{var e,s;o.startsWith("-")&&(e=Object.keys(a.flags).find(e=>a.flags[e].test(o)),s=Object.keys(a.infoCmds).find(e=>a.infoCmds[e].test(o)),e?c[e]=!0:s||(console.error(`
|
|
8
8
|
[1;91mERROR: Arg [${o}] not recognized.[0m`),console.info(`
|
|
9
|
-
${
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
${
|
|
15
|
-
https://github.com/adamlui/js-utils/tree/main/geolocate#-command-line-usage[0m`)}function y(e){c.quietMode||console.info(e)}})();
|
|
9
|
+
${t}Valid arguments are below.[0m`),u(["flags","infoCmds"]),console.info(`
|
|
10
|
+
${t}For more help, type 'minify-js --help' or visit
|
|
11
|
+
https://docs.js-utils.com/geolocate/#-command-line-usage[0m`),process.exit(1)))}),process.argv.some(e=>a.infoCmds.help.test(e)))u();else if(process.argv.some(e=>a.infoCmds.version.test(e))){var p=r(`npm view ${s} version`).toString().trim()||"none";let e,o=process.cwd();for(;"/"!=o;){var m=i.join(o,"package.json");if(n.existsSync(m)){m=require(m);e=(m.dependencies?.[s]||m.devDependencies?.[s])?.match(/(\d+\.\d+\.\d+)/)[0]||"none";break}o=i.dirname(o)}console.info(`
|
|
12
|
+
Global version: `+p),console.info("Local version: "+e)}else{var f,d=process.argv.slice(2),g=[];for(let e=0;e<d.length;e++)d[e].startsWith("-")||(f=d[e].replace(/\[|\]/g,""),g.push(f));p=await e.locate(g,{verbose:!c.quietMode});p||process.exit(1),c.quietMode||1!=p.length||(console.info(`
|
|
13
|
+
IP: `+l+p[0].ip+o),console.info("Country: "+l+p[0].country+o),console.info("Region: "+l+p[0].regionName+o),console.info("City: "+l+p[0].city+o),console.info("Latitude: "+l+p[0].lat+o),console.info("Longitude: "+l+p[0].lon+o),console.info("ISP: "+l+p[0].isp+o)),c.quietMode||console.info("\nCopying to clipboard..."),h=(h=JSON.stringify(p)).replace(/\s+$/,"").replace(/"/g,'""'),"darwin"==process.platform?r(`printf "${h}" | pbcopy`):"linux"==process.platform?r(`printf "${h}" | xclip -selection clipboard`):"win32"==process.platform&&r(`Set-Clipboard -Value "${h}"`,{shell:"powershell"})}var h;function u(e=["cmdFormat","flags","infoCmds"]){const o={cmdFormat:[`
|
|
14
|
+
${t}geolocate [ip1] [ip2] [...] [options|commands][0m`],flags:["\nBoolean options:"," -q, --quiet Suppress all logging except errors."],infoCmds:["\nInfo commands:"," -h, --help Display help screen."," -v, --version Show version number."]};e.forEach(e=>{o[e]?.forEach(e=>{{const n=process.stdout.columns||80,i=[],o=e.match(/\S+|\s+/g);let s="";o.forEach(e=>{var o=n-(0==i.length?0:29);s.length+e.length>o&&(i.push(0==i.length?s:s.trimStart()),s=""),s+=e}),i.push(0==i.length?s:s.trimStart()),i.forEach((e,o)=>console.info(0==o?e:" ".repeat(29)+e))}})})}})();
|
package/dist/geolocate.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* © 2024 Adam Lui under the MIT license.
|
|
3
|
-
* Source: https://
|
|
4
|
-
* Documentation: https://
|
|
3
|
+
* Source: https://code.js-utils.com/geolocate
|
|
4
|
+
* Documentation: https://docs.js-utils.com/geolocate
|
|
5
5
|
*/
|
|
6
|
-
async function geolocate(t){let o;try{o=require("generate-ip").ipv4.validate}catch(e){await import("https://cdn.jsdelivr.net/npm/generate-ip/dist/generate-ip.min.js"),o=ipv4.validate}if(o&&!o(
|
|
6
|
+
async function geolocate(e,t={}){var o={verbose:!0};(e=Array.isArray(e)?e:[e])[0]=e[0]||await fetch("https://ifconfig.me/ip").then(e=>e.text()).catch(()=>fetch("http://ip-api.com/json/").then(e=>e.json()).then(e=>e.query)).catch(async()=>{try{var e=require("child_process")["exec"],o=require("util")["promisify"],{stdout:t,stderr:r}=await o(e)("curl -s ifconfig.me");return r?console.error("geolocate() »",r):t.trim()}catch(e){console.error("geolocate() »",e)}});for(const n of e){t.verbose&&console.info(`geolocate() » Validating ${n}...`);let o;try{o=require("generate-ip").ipv4.validate}catch(e){await import("https://cdn.jsdelivr.net/npm/generate-ip/dist/generate-ip.min.js"),o=ipv4.validate}if(o&&!o(n,{verbose:!1}))return console.error(`geolocate() » ERROR: ${n} is not a valid IPv4 address.`)}if(validateOptions(t,o,"https://docs.js-utils.com/geolocate/#locateip","geolocate('8.8.8.8', { verbose: false })")){t={...o,...t};try{var r=[];for(const i of e){t.verbose&&console.info(`geolocate() » Fetching geolocation data for ${i}...`);let e;if("undefined"!=typeof fetch)e=await fetch("http://ip-api.com/json/"+i);else{if("function"!=typeof require)return console.error("geolocate() » ERROR: Environment not supported.");e=await require("axios").get("http://ip-api.com/json/"+i)}const{status:a,org:c,as:s,query:l,...p}=await e.json();r.push(p)}return!t.verbose||"undefined"!=typeof require&&/cli(?:\.min)?\.js$/.test(require.main.filename)||console.info("geolocate() » Success! Check returned array."),r}catch(e){console.error("geolocate() »",e)}}}function validateOptions(e,o,t,r){const n=JSON.stringify(o,null,2).replace(/"([^"]+)":/g,"$1:").replace(/"/g,"'").replace(/\n\s*/g," "),i=Object.keys(o).join(", "),a=Object.keys(o).filter(e=>"boolean"==typeof o[e]);let c="validateOptions() » ";try{c=validateOptions.caller?.name+"() » "}catch(e){}var s=r.split(",").findIndex(e=>e.trim().startsWith("{"))+1,l=(s+=["st","nd","rd"][s-1]||"th",()=>{console.info(`${c}Valid options: [ ${i} ]`),console.info(c+"If omitted, default settings are: "+n)}),p=()=>{console.info(c+"For more help, please visit "+t)};if("object"!=typeof e)return console.error(c+`ERROR: ${"0th"==s?"[O":s+" arg [o"}ptions] can only be an object of key/values.`),console.info(c+"Example valid call: "+r),l(),p(),!1;for(const f in e){if(!Object.prototype.hasOwnProperty.call(o,f))return console.error(`${c}ERROR: \`${f}\` is an invalid option.`),l(),p(),!1;if(a.includes(f)&&"boolean"!=typeof e[f])return console.error(`${c}ERROR: [${f}] option can only be \`true\` or \`false\`.`),p(),!1}return!0}const apiFunctions={geolocate:geolocate,locate:geolocate};try{module.exports={...apiFunctions}}catch(e){}try{window.geo={...apiFunctions}}catch(e){}
|
package/docs/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
### Fetch IP geolocation data from the CLI.
|
|
4
4
|
|
|
5
|
-
<a href="https://github.com/adamlui/js-utils/releases/tag/geolocate-
|
|
5
|
+
<a href="https://github.com/adamlui/js-utils/releases/tag/geolocate-2.0.0"><img height=31 src="https://img.shields.io/badge/Latest_Build-2.0.0-44cc11.svg?logo=icinga&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
6
6
|
<a href="https://www.npmjs.com/package/@adamlui/geolocate?activeTab=code"><img height=31 src="https://img.shields.io/npm/unpacked-size/%40adamlui%2Fgeolocate?style=for-the-badge&logo=ebox&logoColor=white&labelColor=464646&color=blue"></a>
|
|
7
|
-
<a href="https://github.com/adamlui/js-utils/blob/geolocate-
|
|
7
|
+
<a href="https://github.com/adamlui/js-utils/blob/geolocate-2.0.0/geolocate/dist/geolocate.min.js"><img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/geolocate/dist/geolocate.min.js?branch=geolocate-2.0.0&label=Minified%20Size&logo=databricks&logoColor=white&labelColor=464646&color=ff69b4&style=for-the-badge"></a>
|
|
8
8
|
<a href="https://sonarcloud.io/component_measures?metric=new_vulnerabilities&id=adamlui_js-utils:geolocate/src/geolocate.js"><img height=31 src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsonarcloud.io%2Fapi%2Fmeasures%2Fcomponent%3Fcomponent%3Dadamlui_js-utils%3Ageolocate%2Fsrc%2Fgeolocate.js%26metricKeys%3Dvulnerabilities&query=%24.component.measures.0.value&style=for-the-badge&logo=sonarcloud&logoColor=white&labelColor=464646&label=Vulnerabilities&color=gold"></a>
|
|
9
9
|
|
|
10
10
|
<br>
|
|
@@ -40,7 +40,7 @@ $ npm install @adamlui/geolocate
|
|
|
40
40
|
The basic **global command** is:
|
|
41
41
|
|
|
42
42
|
```
|
|
43
|
-
$ geolocate [
|
|
43
|
+
$ geolocate [ip1] [ip2] [...]
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
Sample output:
|
|
@@ -66,7 +66,7 @@ Info commands:
|
|
|
66
66
|
|
|
67
67
|
## 🔌 Importing the API
|
|
68
68
|
|
|
69
|
-
You can also import **geolocate** into your app to use its API
|
|
69
|
+
You can also import **geolocate** into your app to use its main API method.
|
|
70
70
|
|
|
71
71
|
### <img height=18 src="https://i.imgur.com/JIeAdsr.png"> Node.js
|
|
72
72
|
|
|
@@ -89,14 +89,14 @@ const geo = require('@adamlui/geolocate');
|
|
|
89
89
|
#### <> HTML script tag:
|
|
90
90
|
|
|
91
91
|
```html
|
|
92
|
-
<script src="https://cdn.jsdelivr.net/npm/@adamlui/geolocate@
|
|
92
|
+
<script src="https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.0/dist/geolocate.min.js"></script>
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
#### ES6:
|
|
96
96
|
|
|
97
97
|
```js
|
|
98
98
|
(async () => {
|
|
99
|
-
await import('https://cdn.jsdelivr.net/npm/@adamlui/geolocate@
|
|
99
|
+
await import('https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.0/dist/geolocate.min.js');
|
|
100
100
|
// Your code here...
|
|
101
101
|
})();
|
|
102
102
|
```
|
|
@@ -105,7 +105,7 @@ const geo = require('@adamlui/geolocate');
|
|
|
105
105
|
|
|
106
106
|
```js
|
|
107
107
|
...
|
|
108
|
-
// @require https://cdn.jsdelivr.net/npm/@adamlui/geolocate@
|
|
108
|
+
// @require https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.0/dist/geolocate.min.js
|
|
109
109
|
// ==/UserScript==
|
|
110
110
|
|
|
111
111
|
// Your code here...
|
|
@@ -113,7 +113,7 @@ const geo = require('@adamlui/geolocate');
|
|
|
113
113
|
|
|
114
114
|
<br>
|
|
115
115
|
|
|
116
|
-
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@
|
|
116
|
+
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@2.0.0` version tag from the jsDelivr URL: `https://cdn.jsdelivr.net/npm/@adamlui/geolocate/dist/geolocate.min.js`
|
|
117
117
|
|
|
118
118
|
<br>
|
|
119
119
|
|
|
@@ -121,9 +121,9 @@ const geo = require('@adamlui/geolocate');
|
|
|
121
121
|
|
|
122
122
|
## 📋 API usage
|
|
123
123
|
|
|
124
|
-
### `locate([
|
|
124
|
+
### `locate([ips, options])`
|
|
125
125
|
|
|
126
|
-
Asynchronous method to fetch geolocation data for
|
|
126
|
+
Asynchronous method to fetch geolocation data for each `ip` passed in an array, returned as an array of data objects:
|
|
127
127
|
|
|
128
128
|
```js
|
|
129
129
|
// Using await syntax
|
|
@@ -154,26 +154,13 @@ geo.locate('8.8.8.8').then(location => {
|
|
|
154
154
|
*/
|
|
155
155
|
```
|
|
156
156
|
|
|
157
|
-
**💡 Note:** If no
|
|
158
|
-
|
|
159
|
-
#
|
|
160
|
-
|
|
161
|
-
### `getOwnIP()`
|
|
157
|
+
**💡 Note:** If no IPv4 address is passed, your own one will be used.
|
|
162
158
|
|
|
163
|
-
|
|
159
|
+
Available options (passed as object properties):
|
|
164
160
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
const ip = await geo.getOwnIP();
|
|
169
|
-
console.log(ip); // outputs your IP
|
|
170
|
-
})();
|
|
171
|
-
|
|
172
|
-
// Using .then() syntax
|
|
173
|
-
geo.getOwnIP().then(ip => {
|
|
174
|
-
console.log(ip); // outputs your IP
|
|
175
|
-
});
|
|
176
|
-
```
|
|
161
|
+
Name | Type | Description | Default Value
|
|
162
|
+
----------|---------|-----------------------------------|---------------
|
|
163
|
+
`verbose` | Boolean | Show logging in console/terminal. | `true`
|
|
177
164
|
|
|
178
165
|
<br>
|
|
179
166
|
|
|
@@ -198,19 +185,19 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
198
185
|
### <img height=21px src="https://i.imgur.com/kvf7fXm.png"> [generate-ip](https://js-utils.com/generate-ip) <a href="https://github.com/toolleeo/cli-apps#networking"><img height=18 src="https://awesome.re/mentioned-badge.svg"></a>
|
|
199
186
|
|
|
200
187
|
> Randomly generate, format, and validate IPv4/IPv6 addresses.
|
|
201
|
-
<br>[Install](https://
|
|
202
|
-
[Readme](https://
|
|
203
|
-
[API usage](https://
|
|
204
|
-
[CLI usage](https://
|
|
188
|
+
<br>[Install](https://docs.js-utils.com/generate-ip/#-installation) /
|
|
189
|
+
[Readme](https://docs.js-utils.com/generate-ip/#readme) /
|
|
190
|
+
[API usage](https://docs.js-utils.com/generate-ip/#-api-usage) /
|
|
191
|
+
[CLI usage](https://docs.js-utils.com/generate-ip/#-command-line-usage) /
|
|
205
192
|
[Discuss](https://js-utils.com/discussions)
|
|
206
193
|
|
|
207
|
-
### [🔒 generate-pw](../generate-pw)
|
|
194
|
+
### [🔒 generate-pw](../generate-pw) <a href="https://github.com/toolleeo/cli-apps#password-managers"><img height=18 src="https://awesome.re/mentioned-badge.svg"></a>
|
|
208
195
|
|
|
209
196
|
> Randomly generate, strengthen, and validate cryptographically-secure passwords.
|
|
210
|
-
<br>[Install](https://
|
|
211
|
-
[Readme](https://
|
|
212
|
-
[API usage](https://
|
|
213
|
-
[CLI usage](https://
|
|
197
|
+
<br>[Install](https://docs.js-utils.com/generate-pw/#-installation) /
|
|
198
|
+
[Readme](https://docs.js-utils.com/generate-pw/#readme) /
|
|
199
|
+
[API usage](https://docs.js-utils.com/generate-pw/#-api-usage) /
|
|
200
|
+
[CLI usage](https://docs.js-utils.com/generate-pw/#-command-line-usage) /
|
|
214
201
|
[Discuss](https://js-utils.com/discussions)
|
|
215
202
|
|
|
216
203
|
<br>
|