generate-ip 2.4.7 → 2.4.8
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 +35 -33
- package/bin/generate-ip +1 -1
- package/bin/generate-ipv4 +1 -1
- package/bin/generate-ipv6 +1 -1
- package/bin/generate-mac +1 -1
- package/bin/generateip +1 -1
- package/bin/generateipv4 +1 -1
- package/bin/generateipv6 +1 -1
- package/bin/generatemac +1 -1
- package/dist/cli/index.min.js +21 -0
- package/dist/cli/lib/data.min.js +6 -0
- package/dist/cli/lib/language.min.js +6 -0
- package/dist/data/app.json +17 -0
- package/dist/data/messages.json +28 -0
- package/dist/generate-ip.min.js +1 -1
- package/docs/README.md +35 -33
- package/package.json +9 -5
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<a id="top"></a>
|
|
2
|
+
|
|
1
3
|
<div align="center">
|
|
2
4
|
|
|
3
5
|
<picture><source media="(prefers-color-scheme: dark)" srcset="https://media.generate-ip.org/images/logos/generate-ip/white-logo.png?7768152"><img width=700 src="https://media.generate-ip.org/images/logos/generate-ip/black-logo.png?7768152"></picture>
|
|
@@ -7,17 +9,17 @@
|
|
|
7
9
|
<br>
|
|
8
10
|
|
|
9
11
|
<a href="#%EF%B8%8F-mit-license">
|
|
10
|
-
<img height=31 src="https://img.shields.io/badge/License-MIT-
|
|
11
|
-
<a href="https://github.com/adamlui/js-utils/releases/tag/generate-ip-2.4.
|
|
12
|
-
<img height=31 src="https://img.shields.io/badge/Latest_Build-2.4.
|
|
12
|
+
<img height=31 src="https://img.shields.io/badge/License-MIT-orange.svg?logo=internetarchive&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
13
|
+
<a href="https://github.com/adamlui/js-utils/releases/tag/generate-ip-2.4.8">
|
|
14
|
+
<img height=31 src="https://img.shields.io/badge/Latest_Build-2.4.8-44cc11.svg?logo=icinga&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
13
15
|
<a href="https://www.npmjs.com/package/generate-ip?activeTab=code">
|
|
14
16
|
<img height=31 src="https://img.shields.io/npm/unpacked-size/generate-ip?style=for-the-badge&logo=ebox&logoColor=white&labelColor=464646&color=blue"></a>
|
|
15
|
-
<a href="https://github.com/adamlui/js-utils/blob/generate-ip-2.4.
|
|
16
|
-
<img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/generate-ip/dist/generate-ip.min.js?branch=generate-ip-2.4.
|
|
17
|
+
<a href="https://github.com/adamlui/js-utils/blob/generate-ip-2.4.8/generate-ip/dist/generate-ip.min.js">
|
|
18
|
+
<img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/generate-ip/dist/generate-ip.min.js?branch=generate-ip-2.4.8&label=Minified%20Size&logo=databricks&logoColor=white&labelColor=464646&color=ff69b4&style=for-the-badge"></a>
|
|
17
19
|
<a href="https://sonarcloud.io/component_measures?metric=new_vulnerabilities&id=adamlui_js-utils:generate-ip/src/generate-ip.js">
|
|
18
20
|
<img height=31 src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsonarcloud.io%2Fapi%2Fmeasures%2Fcomponent%3Fcomponent%3Dadamlui_js-utils%3Agenerate-ip%2Fsrc%2Fgenerate-ip.js%26metricKeys%3Dvulnerabilities&query=%24.component.measures.0.value&style=for-the-badge&logo=sonarcloud&logoColor=white&labelColor=464646&label=Vulnerabilities&color=gold"></a>
|
|
19
21
|
<a href="https://github.com/toolleeo/cli-apps#networking">
|
|
20
|
-
<img height=31 src="https://img.shields.io/badge/Mentioned_in-Awesome-
|
|
22
|
+
<img height=31 src="https://img.shields.io/badge/Mentioned_in-Awesome-ff69b4?logo=awesomelists&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
21
23
|
<a href="https://www.jsdelivr.com/package/npm/generate-ip?tab=stats">
|
|
22
24
|
<img height=31 src="https://img.shields.io/jsdelivr/npm/hm/generate-ip?style=for-the-badge&logo=jsdelivr&logoColor=white&label=jsDelivr%20Hits&labelColor=464646&color=49c5d8"></a>
|
|
23
25
|
|
|
@@ -75,7 +77,7 @@ import { ipv4, ipv6, mac } from 'generate-ip';
|
|
|
75
77
|
#### CommonJS:
|
|
76
78
|
|
|
77
79
|
```js
|
|
78
|
-
const { ipv4, ipv6, mac } = require('generate-ip')
|
|
80
|
+
const { ipv4, ipv6, mac } = require('generate-ip')
|
|
79
81
|
```
|
|
80
82
|
|
|
81
83
|
###### _*Node.js version 14 or higher required_
|
|
@@ -85,23 +87,23 @@ const { ipv4, ipv6, mac } = require('generate-ip');
|
|
|
85
87
|
#### <> HTML script tag:
|
|
86
88
|
|
|
87
89
|
```html
|
|
88
|
-
<script src="https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
90
|
+
<script src="https://cdn.jsdelivr.net/npm/generate-ip@2.4.8/dist/generate-ip.min.js"></script>
|
|
89
91
|
```
|
|
90
92
|
|
|
91
93
|
#### ES6:
|
|
92
94
|
|
|
93
95
|
```js
|
|
94
96
|
(async () => {
|
|
95
|
-
await import('https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
97
|
+
await import('https://cdn.jsdelivr.net/npm/generate-ip@2.4.8/dist/generate-ip.min.js')
|
|
96
98
|
// Your code here...
|
|
97
|
-
})()
|
|
99
|
+
})()
|
|
98
100
|
```
|
|
99
101
|
|
|
100
102
|
### <img height=17 src="https://assets.js-utils.org/images/icons/platforms/tampermonkey/icon28.png?v=0d36e26"><img height=17.5 src="https://assets.js-utils.org/images/icons/platforms/violentmonkey/icon25.png?v=0d36e26"> Greasemonkey
|
|
101
103
|
|
|
102
104
|
```js
|
|
103
105
|
...
|
|
104
|
-
// @require https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
106
|
+
// @require https://cdn.jsdelivr.net/npm/generate-ip@2.4.8/dist/generate-ip.min.js
|
|
105
107
|
// ==/UserScript==
|
|
106
108
|
|
|
107
109
|
// Your code here...
|
|
@@ -109,7 +111,7 @@ const { ipv4, ipv6, mac } = require('generate-ip');
|
|
|
109
111
|
|
|
110
112
|
<br>
|
|
111
113
|
|
|
112
|
-
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@2.4.
|
|
114
|
+
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@2.4.8` version tag from the jsDelivr URL: `https://cdn.jsdelivr.net/npm/generate-ip/dist/generate-ip.min.js`
|
|
113
115
|
|
|
114
116
|
<br>
|
|
115
117
|
|
|
@@ -128,15 +130,15 @@ const { ipv4, ipv6, mac } = require('generate-ip');
|
|
|
128
130
|
Generates **one** IPv4 address if `qty` option is not given, returning a string:
|
|
129
131
|
|
|
130
132
|
```js
|
|
131
|
-
const ip = ipv4.generate()
|
|
132
|
-
console.log(ip)
|
|
133
|
+
const ip = ipv4.generate()
|
|
134
|
+
console.log(ip) // sample output: '36.42.224.208'
|
|
133
135
|
```
|
|
134
136
|
|
|
135
137
|
...or **multiple** IPv4 addresses if `qty` option is given, returning an array of strings:
|
|
136
138
|
|
|
137
139
|
```js
|
|
138
|
-
const ips = ipv4.generate({ qty: 3 })
|
|
139
|
-
console.log(ips)
|
|
140
|
+
const ips = ipv4.generate({ qty: 3 })
|
|
141
|
+
console.log(ips)
|
|
140
142
|
|
|
141
143
|
/* sample output:
|
|
142
144
|
|
|
@@ -161,8 +163,8 @@ Name | Type | Description | Default Value
|
|
|
161
163
|
Checks if given `address` is a valid IPv4 address:
|
|
162
164
|
|
|
163
165
|
```js
|
|
164
|
-
const ipIsValid = ipv4.validate('36.42.224.208')
|
|
165
|
-
console.log(ipIsValid)
|
|
166
|
+
const ipIsValid = ipv4.validate('36.42.224.208')
|
|
167
|
+
console.log(ipIsValid)
|
|
166
168
|
|
|
167
169
|
/* outputs:
|
|
168
170
|
|
|
@@ -191,15 +193,15 @@ Name | Type | Description | Default Value
|
|
|
191
193
|
Generates **one** IPv6 address if `qty` option is not given, returning a string:
|
|
192
194
|
|
|
193
195
|
```js
|
|
194
|
-
const ip = ipv6.generate()
|
|
195
|
-
console.log(ip)
|
|
196
|
+
const ip = ipv6.generate()
|
|
197
|
+
console.log(ip) // sample output: '1379:6748:810c:5e16:b6c9:ae2:939f:8f2a'
|
|
196
198
|
```
|
|
197
199
|
|
|
198
200
|
...or **multiple** IPv6 addresses if `qty` option is given, returning an array of strings:
|
|
199
201
|
|
|
200
202
|
```js
|
|
201
|
-
const ips = ipv4.generate({ qty: 5 })
|
|
202
|
-
console.log(ips)
|
|
203
|
+
const ips = ipv4.generate({ qty: 5 })
|
|
204
|
+
console.log(ips)
|
|
203
205
|
|
|
204
206
|
/* sample output:
|
|
205
207
|
|
|
@@ -233,9 +235,9 @@ Formats an IPv6 address according to `options` passed, returning a string:
|
|
|
233
235
|
|
|
234
236
|
```js
|
|
235
237
|
const ipv6address = '0d::ffff:192.1.56.10/96',
|
|
236
|
-
formattedAddress = ipv6.format(ipv6address, { leadingZeros: true, doubleColon: false })
|
|
238
|
+
formattedAddress = ipv6.format(ipv6address, { leadingZeros: true, doubleColon: false })
|
|
237
239
|
|
|
238
|
-
console.log(formattedAddress)
|
|
240
|
+
console.log(formattedAddress)
|
|
239
241
|
|
|
240
242
|
/* outputs:
|
|
241
243
|
|
|
@@ -262,8 +264,8 @@ Name | Type | Description | Default Value
|
|
|
262
264
|
Checks if given `address` is a valid IPv6 address:
|
|
263
265
|
|
|
264
266
|
```js
|
|
265
|
-
const ipIsValid = ipv6.validate('0:0:0:0:0:ffff:192.1.56.10/96')
|
|
266
|
-
console.log(ipIsValid)
|
|
267
|
+
const ipIsValid = ipv6.validate('0:0:0:0:0:ffff:192.1.56.10/96')
|
|
268
|
+
console.log(ipIsValid)
|
|
267
269
|
|
|
268
270
|
/* outputs:
|
|
269
271
|
|
|
@@ -292,15 +294,15 @@ Name | Type | Description | Default Value
|
|
|
292
294
|
Generates **one** MAC address if `qty` option is not given, returning a string:
|
|
293
295
|
|
|
294
296
|
```js
|
|
295
|
-
const macAddress = mac.generate()
|
|
296
|
-
console.log(macAddress)
|
|
297
|
+
const macAddress = mac.generate()
|
|
298
|
+
console.log(macAddress) // sample output: '1d:3a:af:21:b1:8c'
|
|
297
299
|
```
|
|
298
300
|
|
|
299
301
|
...or **multiple** MAC addresses if `qty` option is given, returning an array of strings:
|
|
300
302
|
|
|
301
303
|
```js
|
|
302
|
-
const macAddresses = mac.generate({ qty: 2 })
|
|
303
|
-
console.log(macAddresses)
|
|
304
|
+
const macAddresses = mac.generate({ qty: 2 })
|
|
305
|
+
console.log(macAddresses)
|
|
304
306
|
|
|
305
307
|
/* sample output:
|
|
306
308
|
|
|
@@ -325,8 +327,8 @@ Name | Type | Description | Default Value
|
|
|
325
327
|
Checks if given `address` is a valid MAC address:
|
|
326
328
|
|
|
327
329
|
```js
|
|
328
|
-
const addressIsValid = mac.validate('1d:3a:af:21:b1:8c')
|
|
329
|
-
console.log(addressIsValid)
|
|
330
|
+
const addressIsValid = mac.validate('1d:3a:af:21:b1:8c')
|
|
331
|
+
console.log(addressIsValid)
|
|
330
332
|
|
|
331
333
|
/* outputs:
|
|
332
334
|
|
|
@@ -422,4 +424,4 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
422
424
|
|
|
423
425
|
<picture><source media="(prefers-color-scheme: dark)" srcset="https://assets.js-utils.org/images/icons/home/white/icon32x27.png?v=0d36e26"><img height=13 src="https://assets.js-utils.org/images/icons/home/dark-gray/icon32x27.png?v=0d36e26"></picture> <a href="https://js-utils.org">**More JavaScript utilities**</a> /
|
|
424
426
|
<a href="https://github.com/adamlui/js-utils/discussions">Discuss</a> /
|
|
425
|
-
<a href="
|
|
427
|
+
<a href="#top">Back to top ↑</a>
|
package/bin/generate-ip
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
require('child_process').spawnSync('node',
|
|
4
|
-
[require.resolve('generate-ip/dist/cli.min.js'), '--ipv4', ...process.argv.slice(2)],
|
|
4
|
+
[require.resolve('generate-ip/dist/cli/index.min.js'), '--ipv4', ...process.argv.slice(2)],
|
|
5
5
|
{ stdio: 'inherit' }
|
|
6
6
|
);
|
package/bin/generate-ipv4
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
require('child_process').spawnSync('node',
|
|
4
|
-
[require.resolve('generate-ip/dist/cli.min.js'), '--ipv4', ...process.argv.slice(2)],
|
|
4
|
+
[require.resolve('generate-ip/dist/cli/index.min.js'), '--ipv4', ...process.argv.slice(2)],
|
|
5
5
|
{ stdio: 'inherit' }
|
|
6
6
|
);
|
package/bin/generate-ipv6
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
require('child_process').spawnSync('node',
|
|
4
|
-
[require.resolve('generate-ip/dist/cli.min.js'), '--ipv6', ...process.argv.slice(2)],
|
|
4
|
+
[require.resolve('generate-ip/dist/cli/index.min.js'), '--ipv6', ...process.argv.slice(2)],
|
|
5
5
|
{ stdio: 'inherit' }
|
|
6
6
|
);
|
package/bin/generate-mac
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
require('child_process').spawnSync('node',
|
|
4
|
-
[require.resolve('generate-ip/dist/cli.min.js'), '--mac', ...process.argv.slice(2)],
|
|
4
|
+
[require.resolve('generate-ip/dist/cli/index.min.js'), '--mac', ...process.argv.slice(2)],
|
|
5
5
|
{ stdio: 'inherit' }
|
|
6
6
|
);
|
package/bin/generateip
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
require('child_process').spawnSync('node',
|
|
4
|
-
[require.resolve('generate-ip/dist/cli.min.js'), '--ipv4', ...process.argv.slice(2)],
|
|
4
|
+
[require.resolve('generate-ip/dist/cli/index.min.js'), '--ipv4', ...process.argv.slice(2)],
|
|
5
5
|
{ stdio: 'inherit' }
|
|
6
6
|
);
|
package/bin/generateipv4
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
require('child_process').spawnSync('node',
|
|
4
|
-
[require.resolve('generate-ip/dist/cli.min.js'), '--ipv4', ...process.argv.slice(2)],
|
|
4
|
+
[require.resolve('generate-ip/dist/cli/index.min.js'), '--ipv4', ...process.argv.slice(2)],
|
|
5
5
|
{ stdio: 'inherit' }
|
|
6
6
|
);
|
package/bin/generateipv6
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
require('child_process').spawnSync('node',
|
|
4
|
-
[require.resolve('generate-ip/dist/cli.min.js'), '--ipv6', ...process.argv.slice(2)],
|
|
4
|
+
[require.resolve('generate-ip/dist/cli/index.min.js'), '--ipv6', ...process.argv.slice(2)],
|
|
5
5
|
{ stdio: 'inherit' }
|
|
6
6
|
);
|
package/bin/generatemac
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
require('child_process').spawnSync('node',
|
|
4
|
-
[require.resolve('generate-ip/dist/cli.min.js'), '--mac', ...process.argv.slice(2)],
|
|
4
|
+
[require.resolve('generate-ip/dist/cli/index.min.js'), '--mac', ...process.argv.slice(2)],
|
|
5
5
|
{ stdio: 'inherit' }
|
|
6
6
|
);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* © 2024–2026 Adam Lui & contributors under the MIT license.
|
|
4
|
+
* Source: https://code.generate-ip.org
|
|
5
|
+
* Documentation: https://docs.generate-ip.org
|
|
6
|
+
*/
|
|
7
|
+
(async()=>{globalThis.env={devMode:__dirname.match(/[\\/]src/)};var e=require("node-clipboardy"),s=require("child_process").execSync,o=require("fs"),{getMsgs:a,getSysLang:p}=require(`./lib/language${env.devMode?"":".min"}.js`),{ipv4:r,ipv6:i,mac:n}=require(`../generate-ip${env.devMode?"":".min"}.js`),t=require("path");globalThis.app=require(`../${env.devMode?"../":"./data/"}app.json`),app.urls.docs+="/#-command-line-usage",app.msgs=await a(p()),app.regex={paramOptions:{qty:/^--?qu?a?n?ti?t?y(?:=.*|$)/},flags:{ipv6mode:/^--?(?:ip)?v?6(?:-?mode)?$/,macMode:/^--?m(?:ac)?(?:-?mode)?$/,quietMode:/^--?q(?:uiet)?(?:-?mode)?$/},infoCmds:{help:/^--?h(?:elp)?$/,version:/^--?ve?r?s?i?o?n?$/},version:/^[~^>=]?\d+\.\d+\.\d+$/};let m="[1;91m",g="[1;97m";if(app.config={},process.argv.forEach(p=>{var e,s,o;p.startsWith("-")&&(e=Object.keys(app.regex.paramOptions).find(e=>app.regex.paramOptions[e].test(p)),o=Object.keys(app.regex.flags).find(e=>app.regex.flags[e].test(p)),s=Object.keys(app.regex.infoCmds).find(e=>app.regex.infoCmds[e].test(p)),o?app.config[o]=!0:e?(/=.+/.test(p)||(console.error(`
|
|
8
|
+
${m}${app.msgs.prefix_error}: Arg [--${p.replace(/-/g,"")}] ${app.msgs.error_noEqual}.[0m`),f(),process.exit(1)),o=p.split("=")[1],app.config[e]=parseInt(o)||o):s||/ipv4/.test(p)||(console.error(`
|
|
9
|
+
${m}${app.msgs.prefix_error}: Arg [${p}] ${app.msgs.error_notRecognized}.[0m`),console.info(`
|
|
10
|
+
[1;33m${app.msgs.info_validArgs}.[0m`),l(["paramOptions","flags","infoCmds"]),process.exit(1)))}),app.config.qty&&(isNaN(app.config.qty)||app.config.qty<1)&&(console.error(`
|
|
11
|
+
${m}${app.msgs.prefix_error}: [qty] ${app.msgs.error_nonPositiveNum}.[0m`),f(),process.exit(1)),process.argv.some(e=>app.regex.infoCmds.help.test(e)))l();else if(process.argv.some(e=>app.regex.infoCmds.version.test(e))){var a=s(`npm view ${JSON.stringify(app.name)} version`).toString().trim()||"none";let e,p=process.cwd();for(;"/"!=p;){var c=t.join(p,"package.json");if(o.existsSync(c)){c=require(c);e=(c.dependencies?.[app.name]||c.devDependencies?.[app.name])?.match(app.regex.version)?.[1]||"none";break}p=t.dirname(p)}console.info(`
|
|
12
|
+
${app.msgs.prefix_globalVer}: `+a),console.info(app.msgs.prefix_localVer+": "+e)}else{p={qty:app.config.qty||1,verbose:!app.config.quietMode},s=(app.config.ipv6mode?i:app.config.macMode?n:r).generate(p);a=`
|
|
13
|
+
${app.msgs.info_copying}...`,app.config.quietMode||console.info(a),e.writeSync(Array.isArray(s)?s.join("\n"):s)}function f(){console.info(`
|
|
14
|
+
${app.msgs.info_moreHelp}, ${app.msgs.info_type} ${app.name} --help' ${app.msgs.info_or} ${app.msgs.info_visit}
|
|
15
|
+
${g}${app.urls.docs}[0m`)}function l(e=["header","usage","paramOptions","flags","infoCmds"]){app.prefix=`[106m[30m ${app.name} [0m `;let p={header:[`
|
|
16
|
+
├ ${app.prefix}${app.msgs.appCopyright||`© ${app.copyrightYear} ${app.author} under the ${app.license} license`}.`,""+app.prefix+app.msgs.prefix_source+": "+app.urls.src],usage:[`
|
|
17
|
+
${g}o ${app.msgs.helpSection_usage}:[0m`,` ${g}» [1;92m${app.cmdFormat}[0m`],paramOptions:[`
|
|
18
|
+
${g}o ${app.msgs.helpSection_paramOptions}:[0m`,` --qty=n ${app.msgs.optionDesc_qty}.`],flags:[`
|
|
19
|
+
${g}o ${app.msgs.helpSection_flags}:[0m`,` -6, --ipv6 ${app.msgs.optionDesc_ipv6}.`,` -m, --mac ${app.msgs.optionDesc_mac}.`,` -q, --quiet ${app.msgs.optionDesc_quiet}.`],infoCmds:[`
|
|
20
|
+
${g}o ${app.msgs.helpSection_infoCmds}:[0m`," -h, --help "+app.msgs.optionDesc_help,` -v, --version ${app.msgs.optionDesc_version}.`]};e.forEach(i=>p[i]?.forEach(p=>{{var r=/header|usage/.test(i)?1:29;let s=process.stdout.columns||80,o=[],e=p.match(/\S+|\s+/g),a="";e.forEach(e=>{var p=s-(o.length?r:0);a.length+"| ".length+e.length>p&&(o.push(o.length?a.trimStart():a),a=""),a+=e}),o.push(o.length?a.trimStart():a),o.forEach((e,p)=>console.info("| "+(0==p?e:" ".repeat(r)+e)))}})),console.info(`
|
|
21
|
+
${app.msgs.info_moreHelp}, ${app.msgs.info_visit}: ${g}${app.urls.docs}[0m`)}})();
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* © 2024–2026 Adam Lui & contributors under the MIT license.
|
|
3
|
+
* Source: https://code.generate-ip.org
|
|
4
|
+
* Documentation: https://docs.generate-ip.org
|
|
5
|
+
*/
|
|
6
|
+
module.exports={fetch(n){return new Promise((t,e)=>{var r=n.match(/^([^:]+):\/\//)[1];/^https?$/.test(r)||e(new Error(app.msgs.error_invalidURL+".")),require(r).get(n,e=>{let r="";e.on("data",e=>r+=e),e.on("end",()=>t({json:()=>JSON.parse(r)}))}).on("error",e)})},flatten(e,{key:r="message"}={}){var t,n={};for(t in e)n[t]="object"==typeof e[t]&&r in e[t]?e[t][r]:e[t];return n}};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* © 2024–2026 Adam Lui & contributors under the MIT license.
|
|
3
|
+
* Source: https://code.generate-ip.org
|
|
4
|
+
* Documentation: https://docs.generate-ip.org
|
|
5
|
+
*/
|
|
6
|
+
module.exports={async getMsgs(r="en"){var e=require(`./data${env.devMode?"":".min"}.js`);let t=e.flatten(require(`../../${env.devMode?"../_locales/en/":"data/"}messages.json`),{key:"message"});if(!r.startsWith("en")){var n=`${app.urls.jsdelivr}@${app.commitHashes.locales}/${app.name}/_locales/`;let s=n+`${r?r.replace("-","_"):"en"}/`+"messages.json",a=0;for(;a<3;)try{t=e.flatten(await(await e.fetch(s)).json(),{key:"message"});break}catch(e){if(3==++a)break;s=r.includes("-")&&1==a?s.replace(/([^_]*)_[^/]*(\/.*)/,"$1$2"):n+"en/messages.json"}}return t},getSysLang(){var e;if("win32"!=process.platform)return((e=process.env).LANG||e.LANGUAGE||e.LC_ALL||e.LC_MESSAGES||e.LC_NAME||"en").split(".")[0];try{return require("child_process").execSync("(Get-Culture).TwoLetterISOLanguageName",{shell:"powershell",encoding:"utf-8"}).trim()}catch(e){return console.error("ERROR loading system language:",e.message),"en"}}};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "generate-ip",
|
|
3
|
+
"author": "Adam Lui & contributors",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"copyrightYear": "2024–2026",
|
|
6
|
+
"cmdFormat": "generate-[ip|ipv6|mac] [options|commands]",
|
|
7
|
+
"urls": {
|
|
8
|
+
"docs": "https://github.com/adamlui/js-utils/tree/main/generate-ip/docs",
|
|
9
|
+
"github": "https://github.com/adamlui/js-utils",
|
|
10
|
+
"jsdelivr": "https://cdn.jsdelivr.net/gh/adamlui/js-utils",
|
|
11
|
+
"npm": "https://www.npmjs.com/package/generate-ip",
|
|
12
|
+
"src": "https://github.com/adamlui/js-utils/tree/main/generate-ip/src"
|
|
13
|
+
},
|
|
14
|
+
"commitHashes": {
|
|
15
|
+
"locales": "0e30af1"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"appName": { "message": "generate-ip" },
|
|
3
|
+
"appCopyright": { "message": "© 2024–2026 Adam Lui & contributors under the MIT license" },
|
|
4
|
+
"prefix_error": { "message": "ERROR" },
|
|
5
|
+
"prefix_globalVer": { "message": "Global version" },
|
|
6
|
+
"prefix_localVer": { "message": "Local version" },
|
|
7
|
+
"prefix_source": { "message": "Source" },
|
|
8
|
+
"error_noEqual": { "message": "requires '=' followed by a value" },
|
|
9
|
+
"error_notRecognized": { "message": "not recognized" },
|
|
10
|
+
"error_nonPositiveNum": { "message": "argument can only be > 0" },
|
|
11
|
+
"error_invalidURL": { "message": "Invalid URL" },
|
|
12
|
+
"info_validArgs": { "message": "Valid arguments are below" },
|
|
13
|
+
"info_copying": { "message": "Copying to clipboard" },
|
|
14
|
+
"info_moreHelp": { "message": "For more help" },
|
|
15
|
+
"info_type": { "message": "type" },
|
|
16
|
+
"info_or": { "message": "or" },
|
|
17
|
+
"info_visit": { "message": "visit" },
|
|
18
|
+
"helpSection_usage": { "message": "Usage" },
|
|
19
|
+
"helpSection_paramOptions": { "message": "Parameter options" },
|
|
20
|
+
"helpSection_flags": { "message": "Boolean options" },
|
|
21
|
+
"helpSection_infoCmds": { "message": "Info commands" },
|
|
22
|
+
"optionDesc_qty": { "message": "Generate n IP address(es)" },
|
|
23
|
+
"optionDesc_ipv6": { "message": "Generate IPv6 address" },
|
|
24
|
+
"optionDesc_mac": { "message": "Generate MAC address" },
|
|
25
|
+
"optionDesc_quiet": { "message": "Suppress all logging except errors" },
|
|
26
|
+
"optionDesc_help": { "message": "Display help screen" },
|
|
27
|
+
"optionDesc_version": { "message": "Show version number" }
|
|
28
|
+
}
|
package/dist/generate-ip.min.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Source: https://code.generate-ip.org
|
|
4
4
|
* Documentation: https://docs.generate-ip.org
|
|
5
5
|
*/
|
|
6
|
-
let ipv4={generate:function(o={}){var e="ipv4.generate() » ",t={verbose:!0,qty:1};if(validateOptions(o,t,"https://docs.generate-ip.org/#ipv4generateoptions","ipv4.generate({ verbose: false, qty: 3 })")){(o={...t,...o}).verbose&&console.info(e+`Generating IPv4 address${1<o.qty?"es":""}...`);var r=[];if(1<o.qty)for(let e=0;e<o.qty;e++)r.push(this.generate({...o,qty:1,verbose:!1}));else{var s=[];for(let e=0;e<4;e++)s.push(randomInt(0,256));r.push(s.join("."))}t=1<o.qty?r:r[0];return o.verbose&&(console.info(e+`IPv4 address${1<o.qty?"es":""} generated!`),console.info(e+(1==o.qty?t:t.join(", ")))),t}},validate:function(e,o={}){var t="https://docs.generate-ip.org/#ipv4validateaddress-options",r={verbose:!0},s="ipv4.validate() » ";if("string"!=typeof e)console.error(s+"ERROR: 1st arg <address> must be a string."),console.info(s+"For more help, please visit "+t);else if(validateOptions(o,r,t,"ipv4.validate('0.0.255.255', { verbose: false })"))return(o={...r,...o}).verbose&&console.info(s+`Validating ${e}...`),r=!(4!=(t=e.split(".")).length||t.some(e=>!/^\d+$/.test(e)||parseInt(e,10)<0||255<parseInt(e,10))),o.verbose&&console.info(s+`IP is ${r?"":"in"}valid IPv4 address!`),r}},ipv6={generate:function(r={}){var e="ipv6.generate() » ",o={verbose:!0,qty:1,leadingZeros:!1,doubleColon:!0};if(validateOptions(r,o,"https://docs.generate-ip.org/#ipv6generateoptions","ipv6.generate({ leadingZeros: true, qty: 5 })")){(r={...o,...r}).verbose&&console.info(e+`Generating IPv6 address${1<r.qty?"es":""}...`);var s=[];if(1<r.qty)for(let e=0;e<r.qty;e++)s.push(this.generate({...r,qty:1,verbose:!1}));else{let o=[],{qty:e,...t}=r;for(let e=0;e<8;e++){var
|
|
6
|
+
let ipv4={generate:function(o={}){var e="ipv4.generate() » ",t={verbose:!0,qty:1};if(validateOptions(o,t,"https://docs.generate-ip.org/#ipv4generateoptions","ipv4.generate({ verbose: false, qty: 3 })")){(o={...t,...o}).verbose&&console.info(e+`Generating IPv4 address${1<o.qty?"es":""}...`);var r=[];if(1<o.qty)for(let e=0;e<o.qty;e++)r.push(this.generate({...o,qty:1,verbose:!1}));else{var s=[];for(let e=0;e<4;e++)s.push(randomInt(0,256));r.push(s.join("."))}t=1<o.qty?r:r[0];return o.verbose&&(console.info(e+`IPv4 address${1<o.qty?"es":""} generated!`),console.info(e+(1==o.qty?t:t.join(", ")))),t}},validate:function(e,o={}){var t="https://docs.generate-ip.org/#ipv4validateaddress-options",r={verbose:!0},s="ipv4.validate() » ";if("string"!=typeof e)console.error(s+"ERROR: 1st arg <address> must be a string."),console.info(s+"For more help, please visit "+t);else if(validateOptions(o,r,t,"ipv4.validate('0.0.255.255', { verbose: false })"))return(o={...r,...o}).verbose&&console.info(s+`Validating ${e}...`),r=!(4!=(t=e.split(".")).length||t.some(e=>!/^\d+$/.test(e)||parseInt(e,10)<0||255<parseInt(e,10))),o.verbose&&console.info(s+`IP is ${r?"":"in"}valid IPv4 address!`),r}},ipv6={generate:function(r={}){var e="ipv6.generate() » ",o={verbose:!0,qty:1,leadingZeros:!1,doubleColon:!0};if(validateOptions(r,o,"https://docs.generate-ip.org/#ipv6generateoptions","ipv6.generate({ leadingZeros: true, qty: 5 })")){(r={...o,...r}).verbose&&console.info(e+`Generating IPv6 address${1<r.qty?"es":""}...`);var s=[];if(1<r.qty)for(let e=0;e<r.qty;e++)s.push(this.generate({...r,qty:1,verbose:!1}));else{let o=[],{qty:e,...t}=r;for(let e=0;e<8;e++){var n=randomHex(4);o.push(n)}s.push(this.format(o.join(":"),{...t,verbose:!1}))}o=1<r.qty?s:s[0];return r.verbose&&(console.info(e+`IPv6 address${1<r.qty?"es":""} generated!`),console.info(e+(1==r.qty?o:o.join(", ")))),o}},format:function(o,t={}){var r,e="https://docs.generate-ip.org/#ipv6formatipv6address-options",s="ipv6.format() » ",n={verbose:!0,leadingZeros:!1,doubleColon:!0};if("string"!=typeof o)console.error(s+"ERROR: 1st arg <ipv6address> must be a string."),console.info(s+"For more help, please visit "+e);else if(this.validate(o,{verbose:!1})){if(validateOptions(t,n,e,"ipv6.format('0d::ffff:192.1.56.10/96', { leadingZeros: true, doubleColon: false })")){t={...n,...t};let e=o;if(e=t.doubleColon?(t.verbose&&console.info(s+"Replacing zero series w/ '::'..."),e.replace(/:(?:0+:)+/,"::")):(t.verbose&&console.info(s+"Expanding '::' into zero series..."),n=e.split(":").filter(Boolean).length,r=t.leadingZeros?"0000":"0",n=Array(8-n).fill(r).join(":"),e.replace("::",`:${n}:`)),t.leadingZeros){t.verbose&&console.info(s+"Adding leading zeros...");var i=e.split(":");for(let e=0;e<i.length;e++)for(;i[e].length<4;)i[e]="0"+i[e];e=i.join(":")}else t.verbose&&console.info(s+"Stripping leading zeros..."),e=o.replace(/(^|(?<=:))0+(?!:)/g,"$1");return t.verbose&&(e!=o?console.info(s+"IP formatted successfully!"):console.info(s+"IP already formatted to specs."),console.info(s+e)),e}}else console.error(s+`ERROR: ${o} is not a valid IPv6 address.`),console.info(s+"For more help, please visit "+e)},validate:function(t,r={}){var s="https://docs.generate-ip.org/#ipv6validateaddress-options",n={verbose:!0},i="ipv6.validate() » ";if("string"!=typeof t)console.error(i+"ERROR: 1st arg <address> must be a string."),console.info(i+"For more help, please visit "+s);else if(validateOptions(r,n,s,"ipv6.validate('0:0:0:0:0:ffff:192.1.56.10/96', { verbose: false })")){(r={...n,...r}).verbose&&console.info(i+`Validating ${t}...`);let e=t.split(/::?/),o=e[e.length-1];s=!(t.includes("::")&&2<t.split("::").length||/:{3,}/.test(t)||e.length<2||8<e.length||e.some(e=>!(/^[\da-f]{1,4}$/i.test(e)||e==o&&ipv4.validate(o.replace(/\/(?:12[0-8]|[1-9]?\d)$/,""),{verbose:!1}))));return r.verbose&&console.info(i+`IP is ${s?"":"in"}valid IPv6 address!`),s}}},mac={generate:function(o={}){var e="mac.generate() » ",t={verbose:!0,qty:1};if(validateOptions(o,t,"https://docs.generate-ip.org/#macgenerateoptions","mac.generate({ verbose: false, qty: 2 })")){(o={...t,...o}).verbose&&console.info(e+`Generating MAC address${1<o.qty?"es":""}...`);var r=[];if(1<o.qty)for(let e=0;e<o.qty;e++)r.push(this.generate({...o,qty:1,verbose:!1}));else{var[t,s]=Array.from({length:2},()=>{var o=[];for(let e=0;e<3;e++)o.push(randomHex(2));return o.join(":")});r.push(t+":"+s)}t=1<o.qty?r:r[0];return o.verbose&&(console.info(e+`MAC address${1<o.qty?"es":""} generated!`),console.info(e+(1==o.qty?t:t.join(", ")))),t}},validate:function(e,o={}){var t="https://docs.generate-ip.org/#macvalidateaddress-options",r={verbose:!0},s="mac.validate() » ";if("string"!=typeof e)console.error(s+"ERROR: 1st arg <address> must be a string."),console.info(s+"For more help, please visit "+t);else if(validateOptions(o,r,t,"mac.validate('00:1A:2B:3C:4D:5E', { verbose: false })"))return(o={...r,...o}).verbose&&console.info(s+`Validating ${e}...`),t=/^(?:[\da-f]{2}[:-]){5}[\da-f]{2}$/i.test(e),o.verbose&&console.info(s+`Address is ${t?"":"in"}valid MAC address!`),t}};function randomInt(e,o){var t;return"undefined"==typeof require?(t=(window.crypto||window.msCrypto)?.getRandomValues(new Uint32Array(1))[0]/4294967295||Math.random(),Math.floor(t*(o-e))+e):require("crypto").randomInt(e,o)}function randomHex(o){let t="";for(let e=0;e<o;e++)t+=randomInt(0,16).toString(16);return t}function validateOptions(e,o,t,r){let s=JSON.stringify(o,void 0,2).replace(/"([^"]+)":/g,"$1:").replace(/"/g,"'").replace(/\n\s*/g," "),n=Object.keys(o).join(", "),i=Object.keys(o).filter(e=>"boolean"==typeof o[e]),a=Object.keys(o).filter(e=>Number.isInteger(o[e])),l=`${validateOptions.caller?.name||"validateOptions"}() » `;var d,p=r.split(",").findIndex(e=>e.trim().startsWith("{"))+1;function v(){console.info(l+`Valid options: [ ${n} ]`),console.info(l+"If omitted, default settings are: "+s)}function f(){console.info(l+"For more help, please visit "+t)}if(p+=["st","nd","rd"][p-1]||"th","object"!=typeof e)return console.error(l+`ERROR: ${"0th"==p?"[O":p+" arg [o"}ptions] can only be an object of key/values.`),console.info(l+"Example valid call: "+r),v(),f(),!1;for(d in e){if(!Object.prototype.hasOwnProperty.call(o,d))return console.error(l+`ERROR: \`${d}\` is an invalid option.`),v(),f(),!1;if(i.includes(d)&&"boolean"!=typeof e[d])return console.error(l+`ERROR: [${d}] option can only be \`true\` or \`false\`.`),f(),!1;if(a.includes(d)&&(e[d]=parseInt(e[d],10),isNaN(e[d])||e[d]<1))return console.error(l+`ERROR: [${d}] option can only be an integer > 0.`),f(),!1}return!0}let gipAliases={ipv4:["ipV4","IPv4","IPV4","Ipv4","IpV4","ip","IP","Ip"],ipv6:["ipV6","IPv6","IPV6","Ipv6","IpV6"],mac:["MAC","Mac","ethernet","Ethernet"]};try{module.exports={ipv4:ipv4,ipv6:ipv6,mac:mac}}catch(e){}try{window.ipv4=ipv4,window.ipv6=ipv6,window.mac=mac}catch(e){}for(let o in gipAliases)gipAliases[o].forEach(e=>{try{module.exports[e]=module.exports[o]}catch(e){}try{window[e]=window[o]}catch(e){}});
|
package/docs/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<a id="top"></a>
|
|
2
|
+
|
|
1
3
|
<div align="center">
|
|
2
4
|
|
|
3
5
|
<picture><source media="(prefers-color-scheme: dark)" srcset="https://media.generate-ip.org/images/logos/generate-ip/white-logo.png?7768152"><img width=700 src="https://media.generate-ip.org/images/logos/generate-ip/black-logo.png?7768152"></picture>
|
|
@@ -7,17 +9,17 @@
|
|
|
7
9
|
<br>
|
|
8
10
|
|
|
9
11
|
<a href="#%EF%B8%8F-mit-license">
|
|
10
|
-
<img height=31 src="https://img.shields.io/badge/License-MIT-
|
|
11
|
-
<a href="https://github.com/adamlui/js-utils/releases/tag/generate-ip-2.4.
|
|
12
|
-
<img height=31 src="https://img.shields.io/badge/Latest_Build-2.4.
|
|
12
|
+
<img height=31 src="https://img.shields.io/badge/License-MIT-orange.svg?logo=internetarchive&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
13
|
+
<a href="https://github.com/adamlui/js-utils/releases/tag/generate-ip-2.4.8">
|
|
14
|
+
<img height=31 src="https://img.shields.io/badge/Latest_Build-2.4.8-44cc11.svg?logo=icinga&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
13
15
|
<a href="https://www.npmjs.com/package/generate-ip?activeTab=code">
|
|
14
16
|
<img height=31 src="https://img.shields.io/npm/unpacked-size/generate-ip?style=for-the-badge&logo=ebox&logoColor=white&labelColor=464646&color=blue"></a>
|
|
15
|
-
<a href="https://github.com/adamlui/js-utils/blob/generate-ip-2.4.
|
|
16
|
-
<img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/generate-ip/dist/generate-ip.min.js?branch=generate-ip-2.4.
|
|
17
|
+
<a href="https://github.com/adamlui/js-utils/blob/generate-ip-2.4.8/generate-ip/dist/generate-ip.min.js">
|
|
18
|
+
<img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/generate-ip/dist/generate-ip.min.js?branch=generate-ip-2.4.8&label=Minified%20Size&logo=databricks&logoColor=white&labelColor=464646&color=ff69b4&style=for-the-badge"></a>
|
|
17
19
|
<a href="https://sonarcloud.io/component_measures?metric=new_vulnerabilities&id=adamlui_js-utils:generate-ip/src/generate-ip.js">
|
|
18
20
|
<img height=31 src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsonarcloud.io%2Fapi%2Fmeasures%2Fcomponent%3Fcomponent%3Dadamlui_js-utils%3Agenerate-ip%2Fsrc%2Fgenerate-ip.js%26metricKeys%3Dvulnerabilities&query=%24.component.measures.0.value&style=for-the-badge&logo=sonarcloud&logoColor=white&labelColor=464646&label=Vulnerabilities&color=gold"></a>
|
|
19
21
|
<a href="https://github.com/toolleeo/cli-apps#networking">
|
|
20
|
-
<img height=31 src="https://img.shields.io/badge/Mentioned_in-Awesome-
|
|
22
|
+
<img height=31 src="https://img.shields.io/badge/Mentioned_in-Awesome-ff69b4?logo=awesomelists&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
21
23
|
<a href="https://www.jsdelivr.com/package/npm/generate-ip?tab=stats">
|
|
22
24
|
<img height=31 src="https://img.shields.io/jsdelivr/npm/hm/generate-ip?style=for-the-badge&logo=jsdelivr&logoColor=white&label=jsDelivr%20Hits&labelColor=464646&color=49c5d8"></a>
|
|
23
25
|
|
|
@@ -75,7 +77,7 @@ import { ipv4, ipv6, mac } from 'generate-ip';
|
|
|
75
77
|
#### CommonJS:
|
|
76
78
|
|
|
77
79
|
```js
|
|
78
|
-
const { ipv4, ipv6, mac } = require('generate-ip')
|
|
80
|
+
const { ipv4, ipv6, mac } = require('generate-ip')
|
|
79
81
|
```
|
|
80
82
|
|
|
81
83
|
###### _*Node.js version 14 or higher required_
|
|
@@ -85,23 +87,23 @@ const { ipv4, ipv6, mac } = require('generate-ip');
|
|
|
85
87
|
#### <> HTML script tag:
|
|
86
88
|
|
|
87
89
|
```html
|
|
88
|
-
<script src="https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
90
|
+
<script src="https://cdn.jsdelivr.net/npm/generate-ip@2.4.8/dist/generate-ip.min.js"></script>
|
|
89
91
|
```
|
|
90
92
|
|
|
91
93
|
#### ES6:
|
|
92
94
|
|
|
93
95
|
```js
|
|
94
96
|
(async () => {
|
|
95
|
-
await import('https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
97
|
+
await import('https://cdn.jsdelivr.net/npm/generate-ip@2.4.8/dist/generate-ip.min.js')
|
|
96
98
|
// Your code here...
|
|
97
|
-
})()
|
|
99
|
+
})()
|
|
98
100
|
```
|
|
99
101
|
|
|
100
102
|
### <img height=17 src="https://assets.js-utils.org/images/icons/platforms/tampermonkey/icon28.png?v=0d36e26"><img height=17.5 src="https://assets.js-utils.org/images/icons/platforms/violentmonkey/icon25.png?v=0d36e26"> Greasemonkey
|
|
101
103
|
|
|
102
104
|
```js
|
|
103
105
|
...
|
|
104
|
-
// @require https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
106
|
+
// @require https://cdn.jsdelivr.net/npm/generate-ip@2.4.8/dist/generate-ip.min.js
|
|
105
107
|
// ==/UserScript==
|
|
106
108
|
|
|
107
109
|
// Your code here...
|
|
@@ -109,7 +111,7 @@ const { ipv4, ipv6, mac } = require('generate-ip');
|
|
|
109
111
|
|
|
110
112
|
<br>
|
|
111
113
|
|
|
112
|
-
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@2.4.
|
|
114
|
+
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@2.4.8` version tag from the jsDelivr URL: `https://cdn.jsdelivr.net/npm/generate-ip/dist/generate-ip.min.js`
|
|
113
115
|
|
|
114
116
|
<br>
|
|
115
117
|
|
|
@@ -128,15 +130,15 @@ const { ipv4, ipv6, mac } = require('generate-ip');
|
|
|
128
130
|
Generates **one** IPv4 address if `qty` option is not given, returning a string:
|
|
129
131
|
|
|
130
132
|
```js
|
|
131
|
-
const ip = ipv4.generate()
|
|
132
|
-
console.log(ip)
|
|
133
|
+
const ip = ipv4.generate()
|
|
134
|
+
console.log(ip) // sample output: '36.42.224.208'
|
|
133
135
|
```
|
|
134
136
|
|
|
135
137
|
...or **multiple** IPv4 addresses if `qty` option is given, returning an array of strings:
|
|
136
138
|
|
|
137
139
|
```js
|
|
138
|
-
const ips = ipv4.generate({ qty: 3 })
|
|
139
|
-
console.log(ips)
|
|
140
|
+
const ips = ipv4.generate({ qty: 3 })
|
|
141
|
+
console.log(ips)
|
|
140
142
|
|
|
141
143
|
/* sample output:
|
|
142
144
|
|
|
@@ -161,8 +163,8 @@ Name | Type | Description | Default Value
|
|
|
161
163
|
Checks if given `address` is a valid IPv4 address:
|
|
162
164
|
|
|
163
165
|
```js
|
|
164
|
-
const ipIsValid = ipv4.validate('36.42.224.208')
|
|
165
|
-
console.log(ipIsValid)
|
|
166
|
+
const ipIsValid = ipv4.validate('36.42.224.208')
|
|
167
|
+
console.log(ipIsValid)
|
|
166
168
|
|
|
167
169
|
/* outputs:
|
|
168
170
|
|
|
@@ -191,15 +193,15 @@ Name | Type | Description | Default Value
|
|
|
191
193
|
Generates **one** IPv6 address if `qty` option is not given, returning a string:
|
|
192
194
|
|
|
193
195
|
```js
|
|
194
|
-
const ip = ipv6.generate()
|
|
195
|
-
console.log(ip)
|
|
196
|
+
const ip = ipv6.generate()
|
|
197
|
+
console.log(ip) // sample output: '1379:6748:810c:5e16:b6c9:ae2:939f:8f2a'
|
|
196
198
|
```
|
|
197
199
|
|
|
198
200
|
...or **multiple** IPv6 addresses if `qty` option is given, returning an array of strings:
|
|
199
201
|
|
|
200
202
|
```js
|
|
201
|
-
const ips = ipv4.generate({ qty: 5 })
|
|
202
|
-
console.log(ips)
|
|
203
|
+
const ips = ipv4.generate({ qty: 5 })
|
|
204
|
+
console.log(ips)
|
|
203
205
|
|
|
204
206
|
/* sample output:
|
|
205
207
|
|
|
@@ -233,9 +235,9 @@ Formats an IPv6 address according to `options` passed, returning a string:
|
|
|
233
235
|
|
|
234
236
|
```js
|
|
235
237
|
const ipv6address = '0d::ffff:192.1.56.10/96',
|
|
236
|
-
formattedAddress = ipv6.format(ipv6address, { leadingZeros: true, doubleColon: false })
|
|
238
|
+
formattedAddress = ipv6.format(ipv6address, { leadingZeros: true, doubleColon: false })
|
|
237
239
|
|
|
238
|
-
console.log(formattedAddress)
|
|
240
|
+
console.log(formattedAddress)
|
|
239
241
|
|
|
240
242
|
/* outputs:
|
|
241
243
|
|
|
@@ -262,8 +264,8 @@ Name | Type | Description | Default Value
|
|
|
262
264
|
Checks if given `address` is a valid IPv6 address:
|
|
263
265
|
|
|
264
266
|
```js
|
|
265
|
-
const ipIsValid = ipv6.validate('0:0:0:0:0:ffff:192.1.56.10/96')
|
|
266
|
-
console.log(ipIsValid)
|
|
267
|
+
const ipIsValid = ipv6.validate('0:0:0:0:0:ffff:192.1.56.10/96')
|
|
268
|
+
console.log(ipIsValid)
|
|
267
269
|
|
|
268
270
|
/* outputs:
|
|
269
271
|
|
|
@@ -292,15 +294,15 @@ Name | Type | Description | Default Value
|
|
|
292
294
|
Generates **one** MAC address if `qty` option is not given, returning a string:
|
|
293
295
|
|
|
294
296
|
```js
|
|
295
|
-
const macAddress = mac.generate()
|
|
296
|
-
console.log(macAddress)
|
|
297
|
+
const macAddress = mac.generate()
|
|
298
|
+
console.log(macAddress) // sample output: '1d:3a:af:21:b1:8c'
|
|
297
299
|
```
|
|
298
300
|
|
|
299
301
|
...or **multiple** MAC addresses if `qty` option is given, returning an array of strings:
|
|
300
302
|
|
|
301
303
|
```js
|
|
302
|
-
const macAddresses = mac.generate({ qty: 2 })
|
|
303
|
-
console.log(macAddresses)
|
|
304
|
+
const macAddresses = mac.generate({ qty: 2 })
|
|
305
|
+
console.log(macAddresses)
|
|
304
306
|
|
|
305
307
|
/* sample output:
|
|
306
308
|
|
|
@@ -325,8 +327,8 @@ Name | Type | Description | Default Value
|
|
|
325
327
|
Checks if given `address` is a valid MAC address:
|
|
326
328
|
|
|
327
329
|
```js
|
|
328
|
-
const addressIsValid = mac.validate('1d:3a:af:21:b1:8c')
|
|
329
|
-
console.log(addressIsValid)
|
|
330
|
+
const addressIsValid = mac.validate('1d:3a:af:21:b1:8c')
|
|
331
|
+
console.log(addressIsValid)
|
|
330
332
|
|
|
331
333
|
/* outputs:
|
|
332
334
|
|
|
@@ -422,4 +424,4 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
422
424
|
|
|
423
425
|
<picture><source media="(prefers-color-scheme: dark)" srcset="https://assets.js-utils.org/images/icons/home/white/icon32x27.png?v=0d36e26"><img height=13 src="https://assets.js-utils.org/images/icons/home/dark-gray/icon32x27.png?v=0d36e26"></picture> <a href="https://js-utils.org">**More JavaScript utilities**</a> /
|
|
424
426
|
<a href="https://github.com/adamlui/js-utils/discussions">Discuss</a> /
|
|
425
|
-
<a href="
|
|
427
|
+
<a href="#top">Back to top ↑</a>
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "generate-ip",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.8",
|
|
4
4
|
"description": "Randomly generate, format, and validate IPv4 + IPv6 + MAC addresses.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Adam Lui",
|
|
7
7
|
"email": "adam@kudoai.com",
|
|
8
8
|
"url": "https://github.com/adamlui"
|
|
9
9
|
},
|
|
10
|
-
"homepage": "https://
|
|
10
|
+
"homepage": "https://github.com/adamlui/js-utils",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"funding": [
|
|
13
13
|
{
|
|
@@ -29,7 +29,8 @@
|
|
|
29
29
|
],
|
|
30
30
|
"main": "dist/generate-ip.min.js",
|
|
31
31
|
"files": [
|
|
32
|
-
"
|
|
32
|
+
"dist/",
|
|
33
|
+
"docs/"
|
|
33
34
|
],
|
|
34
35
|
"directories": {
|
|
35
36
|
"bin": "./bin",
|
|
@@ -59,9 +60,12 @@
|
|
|
59
60
|
"mac"
|
|
60
61
|
],
|
|
61
62
|
"bugs": {
|
|
62
|
-
"url": "https://
|
|
63
|
+
"url": "https://github.com/adamlui/js-utils/issues"
|
|
64
|
+
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"node-clipboardy": "^1.0.3"
|
|
63
67
|
},
|
|
64
68
|
"devDependencies": {
|
|
65
|
-
"@adamlui/minify.js": "^2.1.
|
|
69
|
+
"@adamlui/minify.js": "^2.1.3"
|
|
66
70
|
}
|
|
67
71
|
}
|