feat(new-tool): mac address lookup
This commit is contained in:
		
							parent
							
								
									1060652590
								
							
						
					
					
						commit
						30c4490321
					
				
							
								
								
									
										1
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								components.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -45,6 +45,7 @@ declare module '@vue/runtime-core' { | ||||
|     NLayout: typeof import('naive-ui')['NLayout'] | ||||
|     NLayoutSider: typeof import('naive-ui')['NLayoutSider'] | ||||
|     NMenu: typeof import('naive-ui')['NMenu'] | ||||
|     NP: typeof import('naive-ui')['NP'] | ||||
|     NPageHeader: typeof import('naive-ui')['NPageHeader'] | ||||
|     NProgress: typeof import('naive-ui')['NProgress'] | ||||
|     NResult: typeof import('naive-ui')['NResult'] | ||||
|  | ||||
| @ -62,6 +62,7 @@ | ||||
|     "naive-ui": "^2.34.3", | ||||
|     "netmask": "^2.0.2", | ||||
|     "node-forge": "^1.3.1", | ||||
|     "oui": "^12.0.51", | ||||
|     "pinia": "^2.0.33", | ||||
|     "plausible-tracker": "^0.3.8", | ||||
|     "qrcode": "^1.5.1", | ||||
|  | ||||
							
								
								
									
										145
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										145
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							| @ -91,6 +91,9 @@ dependencies: | ||||
|   node-forge: | ||||
|     specifier: ^1.3.1 | ||||
|     version: 1.3.1 | ||||
|   oui: | ||||
|     specifier: ^12.0.51 | ||||
|     version: 12.0.51 | ||||
|   pinia: | ||||
|     specifier: ^2.0.33 | ||||
|     version: 2.0.33(typescript@4.5.5)(vue@3.2.47) | ||||
| @ -2127,6 +2130,11 @@ packages: | ||||
|       vue: 3.2.47 | ||||
|     dev: false | ||||
| 
 | ||||
|   /@tootallnate/once@1.1.2: | ||||
|     resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} | ||||
|     engines: {node: '>= 6'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /@tootallnate/once@2.0.0: | ||||
|     resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} | ||||
|     engines: {node: '>= 10'} | ||||
| @ -3021,7 +3029,17 @@ packages: | ||||
|       debug: 4.3.4 | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|     dev: true | ||||
| 
 | ||||
|   /agentkeepalive@4.3.0: | ||||
|     resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} | ||||
|     engines: {node: '>= 8.0.0'} | ||||
|     dependencies: | ||||
|       debug: 4.3.4 | ||||
|       depd: 2.0.0 | ||||
|       humanize-ms: 1.2.1 | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|     dev: false | ||||
| 
 | ||||
|   /ajv@6.12.6: | ||||
|     resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} | ||||
| @ -3404,6 +3422,10 @@ packages: | ||||
|       tslib: 2.5.0 | ||||
|     dev: false | ||||
| 
 | ||||
|   /char-spinner@1.0.1: | ||||
|     resolution: {integrity: sha512-acv43vqJ0+N0rD+Uw3pDHSxP30FHrywu2NO6/wBaHChJIizpDeBUd6NjqhNhy9LGaEAhZAXn46QzmlAvIWd16g==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /character-parser@2.2.0: | ||||
|     resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} | ||||
|     dependencies: | ||||
| @ -3527,7 +3549,7 @@ packages: | ||||
|     dev: false | ||||
| 
 | ||||
|   /concat-map@0.0.1: | ||||
|     resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} | ||||
|     resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} | ||||
| 
 | ||||
|   /concat-stream@2.0.0: | ||||
|     resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} | ||||
| @ -3750,6 +3772,13 @@ packages: | ||||
|     resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /country-data@0.0.31: | ||||
|     resolution: {integrity: sha512-YqlY/i6ikZwoBFfdjK+hJTGaBdTgDpXLI15MCj2UsXZ2cPBb+Kx86AXmDH7PRGt0LUleck0cCgNdWeIhfbcxkQ==} | ||||
|     dependencies: | ||||
|       currency-symbol-map: 2.2.0 | ||||
|       underscore: 1.13.6 | ||||
|     dev: false | ||||
| 
 | ||||
|   /crelt@1.0.5: | ||||
|     resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} | ||||
|     dev: false | ||||
| @ -3854,6 +3883,10 @@ packages: | ||||
|     resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /currency-symbol-map@2.2.0: | ||||
|     resolution: {integrity: sha512-fPZJ3jqM68+AAgqQ7UaGbgHL/39rp6l7GyqS2k1HJPu/kpS8D07x/+Uup6a9tCUKIlOFcRrDCf1qxSt8jnI5BA==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /dargs@7.0.0: | ||||
|     resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} | ||||
|     engines: {node: '>=8'} | ||||
| @ -3910,7 +3943,6 @@ packages: | ||||
|         optional: true | ||||
|     dependencies: | ||||
|       ms: 2.1.2 | ||||
|     dev: true | ||||
| 
 | ||||
|   /decamelize-keys@1.1.1: | ||||
|     resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} | ||||
| @ -3969,6 +4001,11 @@ packages: | ||||
|     engines: {node: '>=0.4.0'} | ||||
|     dev: true | ||||
| 
 | ||||
|   /depd@2.0.0: | ||||
|     resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} | ||||
|     engines: {node: '>= 0.8'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /destr@1.2.2: | ||||
|     resolution: {integrity: sha512-lrbCJwD9saUQrqUfXvl6qoM+QN3W7tLV5pAOs+OqOmopCCz/JkE05MHedJR1xfk4IAnZuJXPVuN5+7jNA2ZCiA==} | ||||
|     dev: true | ||||
| @ -4793,6 +4830,19 @@ packages: | ||||
|       reusify: 1.0.4 | ||||
|     dev: true | ||||
| 
 | ||||
|   /fetch-enhanced@5.0.2: | ||||
|     resolution: {integrity: sha512-g4l1Rm1H72bAwlRNw9gJpvpSRlrIsY17iqcoZnpTV1USaDP9Ye3OJh/2hvk+HLJvWJ3r7SnvJx5YkxSI4cPw8A==} | ||||
|     engines: {node: '>=10'} | ||||
|     dependencies: | ||||
|       agentkeepalive: 4.3.0 | ||||
|       http-proxy-agent: 4.0.1 | ||||
|       https-proxy-agent: 5.0.1 | ||||
|       proxy-from-env: 1.1.0 | ||||
|       quick-lru: 5.1.1 | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|     dev: false | ||||
| 
 | ||||
|   /figue@1.2.0: | ||||
|     resolution: {integrity: sha512-CXKr12kiNWjKtUK3X+YHeXKepn80s9Rg6pgZXoLQYEybgwaGJ9uGW4DrBrVK30ZWZf1mcvTbXF56AcovG7gLVw==} | ||||
|     dependencies: | ||||
| @ -5276,6 +5326,17 @@ packages: | ||||
|       entities: 3.0.1 | ||||
|     dev: true | ||||
| 
 | ||||
|   /http-proxy-agent@4.0.1: | ||||
|     resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} | ||||
|     engines: {node: '>= 6'} | ||||
|     dependencies: | ||||
|       '@tootallnate/once': 1.1.2 | ||||
|       agent-base: 6.0.2 | ||||
|       debug: 4.3.4 | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|     dev: false | ||||
| 
 | ||||
|   /http-proxy-agent@5.0.0: | ||||
|     resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} | ||||
|     engines: {node: '>= 6'} | ||||
| @ -5295,13 +5356,18 @@ packages: | ||||
|       debug: 4.3.4 | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|     dev: true | ||||
| 
 | ||||
|   /human-signals@2.1.0: | ||||
|     resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} | ||||
|     engines: {node: '>=10.17.0'} | ||||
|     dev: true | ||||
| 
 | ||||
|   /humanize-ms@1.2.1: | ||||
|     resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} | ||||
|     dependencies: | ||||
|       ms: 2.1.3 | ||||
|     dev: false | ||||
| 
 | ||||
|   /iconv-lite@0.6.3: | ||||
|     resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} | ||||
|     engines: {node: '>=0.10.0'} | ||||
| @ -5805,6 +5871,12 @@ packages: | ||||
|     resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /json-stable-stringify@1.0.2: | ||||
|     resolution: {integrity: sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==} | ||||
|     dependencies: | ||||
|       jsonify: 0.0.1 | ||||
|     dev: false | ||||
| 
 | ||||
|   /json-stringify-safe@5.0.1: | ||||
|     resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} | ||||
|     dev: true | ||||
| @ -5837,6 +5909,10 @@ packages: | ||||
|       graceful-fs: 4.2.11 | ||||
|     dev: true | ||||
| 
 | ||||
|   /jsonify@0.0.1: | ||||
|     resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /jsonparse@1.3.1: | ||||
|     resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} | ||||
|     engines: {'0': node >= 0.2.0} | ||||
| @ -6216,7 +6292,6 @@ packages: | ||||
| 
 | ||||
|   /minimist@1.2.8: | ||||
|     resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /mlly@1.2.0: | ||||
|     resolution: {integrity: sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==} | ||||
| @ -6239,11 +6314,9 @@ packages: | ||||
| 
 | ||||
|   /ms@2.1.2: | ||||
|     resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /ms@2.1.3: | ||||
|     resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /naive-ui@2.34.3(vue@3.2.47): | ||||
|     resolution: {integrity: sha512-fUMr0dzb/iGsOTWgoblPVobY5X5dihQ1eam5dA+H74oyLYAvgX4pL96xQFPBLIYqvyRFBAsN85kHN5pLqdtpxA==} | ||||
| @ -6318,6 +6391,18 @@ packages: | ||||
|     resolution: {integrity: sha512-nl5goFCig93JZ9FIV8GHT9xpNqXbxQUzkOmKIMKmncsBH9jhg7qKex8hirpymkBFmNQ114chEEG5lS4wgK2I+Q==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /node-fetch@2.6.9: | ||||
|     resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} | ||||
|     engines: {node: 4.x || >=6.0.0} | ||||
|     peerDependencies: | ||||
|       encoding: ^0.1.0 | ||||
|     peerDependenciesMeta: | ||||
|       encoding: | ||||
|         optional: true | ||||
|     dependencies: | ||||
|       whatwg-url: 5.0.0 | ||||
|     dev: false | ||||
| 
 | ||||
|   /node-forge@1.3.1: | ||||
|     resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} | ||||
|     engines: {node: '>= 6.13.0'} | ||||
| @ -6480,6 +6565,23 @@ packages: | ||||
|     resolution: {integrity: sha512-/pIFexOm6S70EPdznemIz3BQZoJ4VTFrhqzu0ACBqBgeLsLxq8e6Jim63ImIfwW/zAD1AlXpRMlOv3aghmo4dA==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /oui@12.0.51: | ||||
|     resolution: {integrity: sha512-Orgdrz/wnnwYd9uAA6Dh4dpL7lIDgDKmRtS1vLV37FxbL265u7bESZjxc5ns/OPwcUHYWu9AZVvVcZWKbbpgXQ==} | ||||
|     hasBin: true | ||||
|     dependencies: | ||||
|       char-spinner: 1.0.1 | ||||
|       country-data: 0.0.31 | ||||
|       fetch-enhanced: 5.0.2 | ||||
|       json-stable-stringify: 1.0.2 | ||||
|       minimatch: 3.1.2 | ||||
|       minimist: 1.2.8 | ||||
|       node-fetch: 2.6.9 | ||||
|       text-table: 0.2.0 | ||||
|     transitivePeerDependencies: | ||||
|       - encoding | ||||
|       - supports-color | ||||
|     dev: false | ||||
| 
 | ||||
|   /p-limit@1.3.0: | ||||
|     resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} | ||||
|     engines: {node: '>=4'} | ||||
| @ -6904,6 +7006,10 @@ packages: | ||||
|     resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /proxy-from-env@1.1.0: | ||||
|     resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /prr@1.0.1: | ||||
|     resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} | ||||
|     dev: true | ||||
| @ -7050,6 +7156,11 @@ packages: | ||||
|     engines: {node: '>=8'} | ||||
|     dev: true | ||||
| 
 | ||||
|   /quick-lru@5.1.1: | ||||
|     resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} | ||||
|     engines: {node: '>=10'} | ||||
|     dev: false | ||||
| 
 | ||||
|   /randombytes@2.1.0: | ||||
|     resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} | ||||
|     dependencies: | ||||
| @ -7753,7 +7864,6 @@ packages: | ||||
| 
 | ||||
|   /text-table@0.2.0: | ||||
|     resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} | ||||
|     dev: true | ||||
| 
 | ||||
|   /throttle-debounce@3.0.1: | ||||
|     resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} | ||||
| @ -7834,6 +7944,10 @@ packages: | ||||
|       url-parse: 1.5.10 | ||||
|     dev: true | ||||
| 
 | ||||
|   /tr46@0.0.3: | ||||
|     resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /tr46@1.0.1: | ||||
|     resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} | ||||
|     dependencies: | ||||
| @ -7993,6 +8107,10 @@ packages: | ||||
|       jiti: 1.18.2 | ||||
|     dev: true | ||||
| 
 | ||||
|   /underscore@1.13.6: | ||||
|     resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /unicode-canonical-property-names-ecmascript@2.0.0: | ||||
|     resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} | ||||
|     engines: {node: '>=4'} | ||||
| @ -8558,6 +8676,10 @@ packages: | ||||
|       - debug | ||||
|     dev: true | ||||
| 
 | ||||
|   /webidl-conversions@3.0.1: | ||||
|     resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} | ||||
|     dev: false | ||||
| 
 | ||||
|   /webidl-conversions@4.0.2: | ||||
|     resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} | ||||
|     dev: true | ||||
| @ -8604,6 +8726,13 @@ packages: | ||||
|       webidl-conversions: 7.0.0 | ||||
|     dev: true | ||||
| 
 | ||||
|   /whatwg-url@5.0.0: | ||||
|     resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} | ||||
|     dependencies: | ||||
|       tr46: 0.0.3 | ||||
|       webidl-conversions: 3.0.1 | ||||
|     dev: false | ||||
| 
 | ||||
|   /whatwg-url@7.1.0: | ||||
|     resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} | ||||
|     dependencies: | ||||
|  | ||||
| @ -46,6 +46,7 @@ import type { ToolCategory } from './tools.types'; | ||||
| import { tool as urlEncoder } from './url-encoder'; | ||||
| import { tool as urlParser } from './url-parser'; | ||||
| import { tool as uuidGenerator } from './uuid-generator'; | ||||
| import { tool as macAddressLookup } from './mac-address-lookup'; | ||||
| 
 | ||||
| export const toolsByCategory: ToolCategory[] = [ | ||||
|   { | ||||
| @ -102,7 +103,7 @@ export const toolsByCategory: ToolCategory[] = [ | ||||
|   }, | ||||
|   { | ||||
|     name: 'Network', | ||||
|     components: [ipv4SubnetCalculator], | ||||
|     components: [ipv4SubnetCalculator, macAddressLookup], | ||||
|   }, | ||||
|   { | ||||
|     name: 'Math', | ||||
|  | ||||
							
								
								
									
										12
									
								
								src/tools/mac-address-lookup/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/tools/mac-address-lookup/index.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| import { Devices } from '@vicons/tabler'; | ||||
| import { defineTool } from '../tool'; | ||||
| 
 | ||||
| export const tool = defineTool({ | ||||
|   name: 'MAC adrdress lookup', | ||||
|   path: '/mac-adrdress-lookup', | ||||
|   description: 'Find the vendor and manufacturer of a device by its MAC address.', | ||||
|   keywords: ['mac', 'adrdress', 'lookup', 'vendor', 'parser', 'manufacturer'], | ||||
|   component: () => import('./mac-address-lookup.vue'), | ||||
|   icon: Devices, | ||||
|   createdAt: new Date('2023-04-06'), | ||||
| }); | ||||
							
								
								
									
										52
									
								
								src/tools/mac-address-lookup/mac-address-lookup.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/tools/mac-address-lookup/mac-address-lookup.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,52 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <n-form-item label="MAC address:" v-bind="validationAttrs"> | ||||
|       <n-input | ||||
|         v-model:value="macAddress" | ||||
|         size="large" | ||||
|         placeholder="Type a MAC address" | ||||
|         clearable | ||||
|         autocomplete="off" | ||||
|         autocorrect="off" | ||||
|         autocapitalize="off" | ||||
|         spellcheck="false" | ||||
|       /> | ||||
|     </n-form-item> | ||||
| 
 | ||||
|     <n-form-item label="Vendor info:"> | ||||
|       <n-card> | ||||
|         <n-text v-if="details"> | ||||
|           <div v-for="(detail, index) of details.split('\n')" :key="index">{{ detail }}</div> | ||||
|         </n-text> | ||||
| 
 | ||||
|         <n-text v-else depth="3" italic>Unknown vendor for this address</n-text> | ||||
|       </n-card> | ||||
|     </n-form-item> | ||||
| 
 | ||||
|     <n-space justify="center"> | ||||
|       <n-button :disabled="!details" tertiary> Copy vendor info </n-button> | ||||
|     </n-space> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script setup lang="ts"> | ||||
| import { useValidation } from '@/composable/validation'; | ||||
| import db from 'oui/oui.json'; | ||||
| 
 | ||||
| const getVendorValue = (address: string) => address.trim().replace(/[.:-]/g, '').toUpperCase().substring(0, 6); | ||||
| 
 | ||||
| const macAddress = ref('20:37:06:12:34:56'); | ||||
| const details = computed<string | undefined>(() => db[getVendorValue(macAddress.value)]); | ||||
| 
 | ||||
| const { attrs: validationAttrs } = useValidation({ | ||||
|   source: macAddress, | ||||
|   rules: [ | ||||
|     { | ||||
|       message: 'Invalid MAC address', | ||||
|       validator: (value) => value.trim().match(/^([0-9A-Fa-f]{2}[:-]){2,5}([0-9A-Fa-f]{2})$/), | ||||
|     }, | ||||
|   ], | ||||
| }); | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped></style> | ||||
							
								
								
									
										4
									
								
								src/tools/mac-address-lookup/oui.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/tools/mac-address-lookup/oui.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| declare module 'oui/oui.json' { | ||||
|   const db: Record<string, string>; | ||||
|   export default db; | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user