This commit is contained in:
skidoodle 2025-03-15 17:48:19 +01:00
parent 0b4d6eea5d
commit 3370dcaee2
No known key found for this signature in database
5 changed files with 358 additions and 328 deletions

View file

@ -1,3 +1,32 @@
# WXT + React # 🌍 Host Info
This template should help get you started developing with React in WXT. A browser extension built with [WXT.dev](https://wxt.dev) and React that lets you discover the origin of the website you're visiting. With a single click, you can view detailed information such as the **country of origin**, **IP address**, **ASN (Autonomous System Number)**, and more. You can also quickly search for the website's details on [Censys](https://censys.io) for deeper insights.
---
## ✨ Features
- **Country of Origin**: Instantly see the country where the website is hosted.
- **IP Address**: View the IP address of the server hosting the website.
- **ASN Information**: Get details about the Autonomous System (AS) managing the IP.
- **Censys Integration**: Quickly search for the website on Censys for advanced network insights.
- **Local & Internal Resources**: Detect if the website is a local or internal resource.
- **Beautiful UI**: A clean, modern interface powered by React and Tailwind CSS.
---
## 🧰 Tech Stack
- **[WXT.dev](https://wxt.dev)**: A modern framework for building browser extensions.
- **[React](https://react.dev)**: A JavaScript library for building user interfaces.
- **[Tailwind CSS](https://tailwindcss.com)**: A utility-first CSS framework for styling.
- **[IP Geolocation API](https://ip.albert.lol)**: Used to fetch IP and country details.
- **[Censys](https://censys.io)**: For advanced network and host information.
---
## 📄 License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
---

View file

@ -7,17 +7,17 @@
"@heroicons/react": "^2.2.0", "@heroicons/react": "^2.2.0",
"@tailwindcss/vite": "^4.0.14", "@tailwindcss/vite": "^4.0.14",
"@types/psl": "^1.1.3", "@types/psl": "^1.1.3",
"@types/webextension-polyfill": "^0.12.3",
"react": "^19.0.0", "react": "^19.0.0",
"react-dom": "^19.0.0", "react-dom": "^19.0.0",
"tailwindcss": "^4.0.14", "tailwindcss": "^4.0.14",
"webextension-polyfill-ts": "^0.26.0",
}, },
"devDependencies": { "devDependencies": {
"@types/chrome": "^0.0.280", "@types/chrome": "^0.0.309",
"@types/react": "^19.0.1", "@types/react": "^19.0.10",
"@types/react-dom": "^19.0.2", "@types/react-dom": "^19.0.4",
"@wxt-dev/module-react": "^1.1.2", "@wxt-dev/module-react": "^1.1.3",
"typescript": "^5.6.3", "typescript": "^5.8.2",
"wxt": "^0.19.29", "wxt": "^0.19.29",
}, },
}, },
@ -230,7 +230,7 @@
"@types/babel__traverse": ["@types/babel__traverse@7.20.6", "", { "dependencies": { "@babel/types": "^7.20.7" } }, "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg=="], "@types/babel__traverse": ["@types/babel__traverse@7.20.6", "", { "dependencies": { "@babel/types": "^7.20.7" } }, "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg=="],
"@types/chrome": ["@types/chrome@0.0.280", "", { "dependencies": { "@types/filesystem": "*", "@types/har-format": "*" } }, "sha512-AotSmZrL9bcZDDmSI1D9dE7PGbhOur5L0cKxXd7IqbVizQWCY4gcvupPUVsQ4FfDj3V2tt/iOpomT9EY0s+w1g=="], "@types/chrome": ["@types/chrome@0.0.309", "", { "dependencies": { "@types/filesystem": "*", "@types/har-format": "*" } }, "sha512-ZFADzcp8b+roUrux68U8pti4cmNOLJXWkShk8lfxj9SBcjYqpJt7NypBprSJUJDJVakGZgd2Tt00QePIGh7oPA=="],
"@types/estree": ["@types/estree@1.0.6", "", {}, "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="], "@types/estree": ["@types/estree@1.0.6", "", {}, "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="],
@ -992,8 +992,6 @@
"webextension-polyfill": ["webextension-polyfill@0.12.0", "", {}, "sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q=="], "webextension-polyfill": ["webextension-polyfill@0.12.0", "", {}, "sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q=="],
"webextension-polyfill-ts": ["webextension-polyfill-ts@0.26.0", "", { "dependencies": { "webextension-polyfill": "^0.8.0" } }, "sha512-XEFL+aYVEsm/d4RajVwP75g56c/w2aSHnPwgtUv8/nCzbLNSzRQIix6aj1xqFkA5yr7OIDkk3OD/QTnPp8ThYA=="],
"webpack-virtual-modules": ["webpack-virtual-modules@0.6.2", "", {}, "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="], "webpack-virtual-modules": ["webpack-virtual-modules@0.6.2", "", {}, "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="],
"when": ["when@3.7.7", "", {}, "sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw=="], "when": ["when@3.7.7", "", {}, "sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw=="],
@ -1166,14 +1164,14 @@
"web-ext-run/fs-extra": ["fs-extra@11.2.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw=="], "web-ext-run/fs-extra": ["fs-extra@11.2.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw=="],
"webextension-polyfill-ts/webextension-polyfill": ["webextension-polyfill@0.8.0", "", {}, "sha512-a19+DzlT6Kp9/UI+mF9XQopeZ+n2ussjhxHJ4/pmIGge9ijCDz7Gn93mNnjpZAk95T4Tae8iHZ6sSf869txqiQ=="],
"widest-line/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], "widest-line/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="],
"wrap-ansi/ansi-styles": ["ansi-styles@6.2.1", "", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="], "wrap-ansi/ansi-styles": ["ansi-styles@6.2.1", "", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="],
"write-file-atomic/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], "write-file-atomic/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
"wxt/@types/chrome": ["@types/chrome@0.0.280", "", { "dependencies": { "@types/filesystem": "*", "@types/har-format": "*" } }, "sha512-AotSmZrL9bcZDDmSI1D9dE7PGbhOur5L0cKxXd7IqbVizQWCY4gcvupPUVsQ4FfDj3V2tt/iOpomT9EY0s+w1g=="],
"yargs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], "yargs/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
"@aklinker1/rollup-plugin-visualizer/open/define-lazy-prop": ["define-lazy-prop@2.0.0", "", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="], "@aklinker1/rollup-plugin-visualizer/open/define-lazy-prop": ["define-lazy-prop@2.0.0", "", {}, "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="],

View file

@ -1,6 +1,6 @@
{ {
"name": "wxt-react-starter", "name": "hostinfo",
"description": "manifest.json description", "description": "Receive information of a domain directly in the browser when browsing a website",
"private": true, "private": true,
"version": "0.0.0", "version": "0.0.0",
"type": "module", "type": "module",
@ -18,17 +18,17 @@
"@heroicons/react": "^2.2.0", "@heroicons/react": "^2.2.0",
"@tailwindcss/vite": "^4.0.14", "@tailwindcss/vite": "^4.0.14",
"@types/psl": "^1.1.3", "@types/psl": "^1.1.3",
"@types/webextension-polyfill": "^0.12.3",
"react": "^19.0.0", "react": "^19.0.0",
"react-dom": "^19.0.0", "react-dom": "^19.0.0",
"tailwindcss": "^4.0.14", "tailwindcss": "^4.0.14"
"webextension-polyfill-ts": "^0.26.0"
}, },
"devDependencies": { "devDependencies": {
"@types/chrome": "^0.0.280", "@types/chrome": "^0.0.309",
"@types/react": "^19.0.1", "@types/react": "^19.0.10",
"@types/react-dom": "^19.0.2", "@types/react-dom": "^19.0.4",
"@wxt-dev/module-react": "^1.1.2", "@wxt-dev/module-react": "^1.1.3",
"typescript": "^5.6.3", "typescript": "^5.8.2",
"wxt": "^0.19.29" "wxt": "^0.19.29"
}, },
"trustedDependencies": [ "trustedDependencies": [

View file

@ -1,308 +1,308 @@
export const codes: Record<string, string> = { export const codes: Record<string, string> = {
ad: "Andorra", ad: 'Andorra',
ae: "United Arab Emirates", ae: 'United Arab Emirates',
af: "Afghanistan", af: 'Afghanistan',
ag: "Antigua and Barbuda", ag: 'Antigua and Barbuda',
ai: "Anguilla", ai: 'Anguilla',
al: "Albania", al: 'Albania',
am: "Armenia", am: 'Armenia',
ao: "Angola", ao: 'Angola',
aq: "Antarctica", aq: 'Antarctica',
ar: "Argentina", ar: 'Argentina',
as: "American Samoa", as: 'American Samoa',
at: "Austria", at: 'Austria',
au: "Australia", au: 'Australia',
aw: "Aruba", aw: 'Aruba',
ax: "Åland Islands", ax: 'Åland Islands',
az: "Azerbaijan", az: 'Azerbaijan',
ba: "Bosnia and Herzegovina", ba: 'Bosnia and Herzegovina',
bb: "Barbados", bb: 'Barbados',
bd: "Bangladesh", bd: 'Bangladesh',
be: "Belgium", be: 'Belgium',
bf: "Burkina Faso", bf: 'Burkina Faso',
bg: "Bulgaria", bg: 'Bulgaria',
bh: "Bahrain", bh: 'Bahrain',
bi: "Burundi", bi: 'Burundi',
bj: "Benin", bj: 'Benin',
bl: "Saint Barthélemy", bl: 'Saint Barthélemy',
bm: "Bermuda", bm: 'Bermuda',
bn: "Brunei", bn: 'Brunei',
bo: "Bolivia", bo: 'Bolivia',
bq: "Caribbean Netherlands", bq: 'Caribbean Netherlands',
br: "Brazil", br: 'Brazil',
bs: "Bahamas", bs: 'Bahamas',
bt: "Bhutan", bt: 'Bhutan',
bv: "Bouvet Island", bv: 'Bouvet Island',
bw: "Botswana", bw: 'Botswana',
by: "Belarus", by: 'Belarus',
bz: "Belize", bz: 'Belize',
ca: "Canada", ca: 'Canada',
cc: "Cocos (Keeling) Islands", cc: 'Cocos (Keeling) Islands',
cd: "DR Congo", cd: 'DR Congo',
cf: "Central African Republic", cf: 'Central African Republic',
cg: "Republic of the Congo", cg: 'Republic of the Congo',
ch: "Switzerland", ch: 'Switzerland',
ci: "Côte d'Ivoire (Ivory Coast)", ci: "Côte d'Ivoire (Ivory Coast)",
ck: "Cook Islands", ck: 'Cook Islands',
cl: "Chile", cl: 'Chile',
cm: "Cameroon", cm: 'Cameroon',
cn: "China", cn: 'China',
co: "Colombia", co: 'Colombia',
cr: "Costa Rica", cr: 'Costa Rica',
cu: "Cuba", cu: 'Cuba',
cv: "Cape Verde", cv: 'Cape Verde',
cw: "Curaçao", cw: 'Curaçao',
cx: "Christmas Island", cx: 'Christmas Island',
cy: "Cyprus", cy: 'Cyprus',
cz: "Czechia", cz: 'Czechia',
de: "Germany", de: 'Germany',
dj: "Djibouti", dj: 'Djibouti',
dk: "Denmark", dk: 'Denmark',
dm: "Dominica", dm: 'Dominica',
do: "Dominican Republic", do: 'Dominican Republic',
dz: "Algeria", dz: 'Algeria',
ec: "Ecuador", ec: 'Ecuador',
ee: "Estonia", ee: 'Estonia',
eg: "Egypt", eg: 'Egypt',
eh: "Western Sahara", eh: 'Western Sahara',
er: "Eritrea", er: 'Eritrea',
es: "Spain", es: 'Spain',
et: "Ethiopia", et: 'Ethiopia',
eu: "European Union", eu: 'European Union',
fi: "Finland", fi: 'Finland',
fj: "Fiji", fj: 'Fiji',
fk: "Falkland Islands", fk: 'Falkland Islands',
fm: "Micronesia", fm: 'Micronesia',
fo: "Faroe Islands", fo: 'Faroe Islands',
fr: "France", fr: 'France',
ga: "Gabon", ga: 'Gabon',
gb: "United Kingdom", gb: 'United Kingdom',
"g-eng": "England", 'gb-eng': 'England',
"g-nir": "Northern Ireland", 'gb-nir': 'Northern Ireland',
"g-sct": "Scotland", 'gb-sct': 'Scotland',
"g-wls": "Wales", 'gb-wls': 'Wales',
gd: "Grenada", gd: 'Grenada',
ge: "Georgia", ge: 'Georgia',
gf: "French Guiana", gf: 'French Guiana',
gg: "Guernsey", gg: 'Guernsey',
gh: "Ghana", gh: 'Ghana',
gi: "Gibraltar", gi: 'Gibraltar',
gl: "Greenland", gl: 'Greenland',
gm: "Gambia", gm: 'Gambia',
gn: "Guinea", gn: 'Guinea',
gp: "Guadeloupe", gp: 'Guadeloupe',
gq: "Equatorial Guinea", gq: 'Equatorial Guinea',
gr: "Greece", gr: 'Greece',
gs: "South Georgia", gs: 'South Georgia',
gt: "Guatemala", gt: 'Guatemala',
gu: "Guam", gu: 'Guam',
gw: "Guinea-Bissau", gw: 'Guinea-Bissau',
gy: "Guyana", gy: 'Guyana',
hk: "Hong Kong", hk: 'Hong Kong',
hm: "Heard Island and McDonald Islands", hm: 'Heard Island and McDonald Islands',
hn: "Honduras", hn: 'Honduras',
hr: "Croatia", hr: 'Croatia',
ht: "Haiti", ht: 'Haiti',
hu: "Hungary", hu: 'Hungary',
id: "Indonesia", id: 'Indonesia',
ie: "Ireland", ie: 'Ireland',
il: "Israel", il: 'Israel',
im: "Isle of Man", im: 'Isle of Man',
in: "India", in: 'India',
io: "British Indian Ocean Territory", io: 'British Indian Ocean Territory',
iq: "Iraq", iq: 'Iraq',
ir: "Iran", ir: 'Iran',
is: "Iceland", is: 'Iceland',
it: "Italy", it: 'Italy',
je: "Jersey", je: 'Jersey',
jm: "Jamaica", jm: 'Jamaica',
jo: "Jordan", jo: 'Jordan',
jp: "Japan", jp: 'Japan',
ke: "Kenya", ke: 'Kenya',
kg: "Kyrgyzstan", kg: 'Kyrgyzstan',
kh: "Cambodia", kh: 'Cambodia',
ki: "Kiribati", ki: 'Kiribati',
km: "Comoros", km: 'Comoros',
kn: "Saint Kitts and Nevis", kn: 'Saint Kitts and Nevis',
kp: "North Korea", kp: 'North Korea',
kr: "South Korea", kr: 'South Korea',
kw: "Kuwait", kw: 'Kuwait',
ky: "Cayman Islands", ky: 'Cayman Islands',
kz: "Kazakhstan", kz: 'Kazakhstan',
la: "Laos", la: 'Laos',
lb: "Lebanon", lb: 'Lebanon',
lc: "Saint Lucia", lc: 'Saint Lucia',
li: "Liechtenstein", li: 'Liechtenstein',
lk: "Sri Lanka", lk: 'Sri Lanka',
lr: "Liberia", lr: 'Liberia',
ls: "Lesotho", ls: 'Lesotho',
lt: "Lithuania", lt: 'Lithuania',
lu: "Luxembourg", lu: 'Luxembourg',
lv: "Latvia", lv: 'Latvia',
ly: "Libya", ly: 'Libya',
ma: "Morocco", ma: 'Morocco',
mc: "Monaco", mc: 'Monaco',
md: "Moldova", md: 'Moldova',
me: "Montenegro", me: 'Montenegro',
mf: "Saint Martin", mf: 'Saint Martin',
mg: "Madagascar", mg: 'Madagascar',
mh: "Marshall Islands", mh: 'Marshall Islands',
mk: "North Macedonia", mk: 'North Macedonia',
ml: "Mali", ml: 'Mali',
mm: "Myanmar", mm: 'Myanmar',
mn: "Mongolia", mn: 'Mongolia',
mo: "Macau", mo: 'Macau',
mp: "Northern Mariana Islands", mp: 'Northern Mariana Islands',
mq: "Martinique", mq: 'Martinique',
mr: "Mauritania", mr: 'Mauritania',
ms: "Montserrat", ms: 'Montserrat',
mt: "Malta", mt: 'Malta',
mu: "Mauritius", mu: 'Mauritius',
mv: "Maldives", mv: 'Maldives',
mw: "Malawi", mw: 'Malawi',
mx: "Mexico", mx: 'Mexico',
my: "Malaysia", my: 'Malaysia',
mz: "Mozambique", mz: 'Mozambique',
na: "Namibia", na: 'Namibia',
nc: "New Caledonia", nc: 'New Caledonia',
ne: "Niger", ne: 'Niger',
nf: "Norfolk Island", nf: 'Norfolk Island',
ng: "Nigeria", ng: 'Nigeria',
ni: "Nicaragua", ni: 'Nicaragua',
nl: "Netherlands", nl: 'Netherlands',
no: "Norway", no: 'Norway',
np: "Nepal", np: 'Nepal',
nr: "Nauru", nr: 'Nauru',
nu: "Niue", nu: 'Niue',
nz: "New Zealand", nz: 'New Zealand',
om: "Oman", om: 'Oman',
pa: "Panama", pa: 'Panama',
pe: "Peru", pe: 'Peru',
pf: "French Polynesia", pf: 'French Polynesia',
pg: "Papua New Guinea", pg: 'Papua New Guinea',
ph: "Philippines", ph: 'Philippines',
pk: "Pakistan", pk: 'Pakistan',
pl: "Poland", pl: 'Poland',
pm: "Saint Pierre and Miquelon", pm: 'Saint Pierre and Miquelon',
pn: "Pitcairn Islands", pn: 'Pitcairn Islands',
pr: "Puerto Rico", pr: 'Puerto Rico',
ps: "Palestine", ps: 'Palestine',
pt: "Portugal", pt: 'Portugal',
pw: "Palau", pw: 'Palau',
py: "Paraguay", py: 'Paraguay',
qa: "Qatar", qa: 'Qatar',
re: "Réunion", re: 'Réunion',
ro: "Romania", ro: 'Romania',
rs: "Serbia", rs: 'Serbia',
ru: "Russia", ru: 'Russia',
rw: "Rwanda", rw: 'Rwanda',
sa: "Saudi Arabia", sa: 'Saudi Arabia',
sb: "Solomon Islands", sb: 'Solomon Islands',
sc: "Seychelles", sc: 'Seychelles',
sd: "Sudan", sd: 'Sudan',
se: "Sweden", se: 'Sweden',
sg: "Singapore", sg: 'Singapore',
sh: "Saint Helena, Ascension and Tristan da Cunha", sh: 'Saint Helena, Ascension and Tristan da Cunha',
si: "Slovenia", si: 'Slovenia',
sj: "Svalbard and Jan Mayen", sj: 'Svalbard and Jan Mayen',
sk: "Slovakia", sk: 'Slovakia',
sl: "Sierra Leone", sl: 'Sierra Leone',
sm: "San Marino", sm: 'San Marino',
sn: "Senegal", sn: 'Senegal',
so: "Somalia", so: 'Somalia',
sr: "Suriname", sr: 'Suriname',
ss: "South Sudan", ss: 'South Sudan',
st: "São Tomé and Príncipe", st: 'São Tomé and Príncipe',
sv: "El Salvador", sv: 'El Salvador',
sx: "Sint Maarten", sx: 'Sint Maarten',
sy: "Syria", sy: 'Syria',
sz: "Eswatini (Swaziland)", sz: 'Eswatini (Swaziland)',
tc: "Turks and Caicos Islands", tc: 'Turks and Caicos Islands',
td: "Chad", td: 'Chad',
tf: "French Southern and Antarctic Lands", tf: 'French Southern and Antarctic Lands',
tg: "Togo", tg: 'Togo',
th: "Thailand", th: 'Thailand',
tj: "Tajikistan", tj: 'Tajikistan',
tk: "Tokelau", tk: 'Tokelau',
tl: "Timor-Leste", tl: 'Timor-Leste',
tm: "Turkmenistan", tm: 'Turkmenistan',
tn: "Tunisia", tn: 'Tunisia',
to: "Tonga", to: 'Tonga',
tr: "Turkey", tr: 'Turkey',
tt: "Trinidad and Tobago", tt: 'Trinidad and Tobago',
tv: "Tuvalu", tv: 'Tuvalu',
tw: "Taiwan", tw: 'Taiwan',
tz: "Tanzania", tz: 'Tanzania',
ua: "Ukraine", ua: 'Ukraine',
ug: "Uganda", ug: 'Uganda',
um: "United States Minor Outlying Islands", um: 'United States Minor Outlying Islands',
un: "United Nations", un: 'United Nations',
us: "United States", us: 'United States',
"u-ak": "Alaska", 'us-ak': 'Alaska',
"u-al": "Alabama", 'us-al': 'Alabama',
"u-ar": "Arkansas", 'us-ar': 'Arkansas',
"u-az": "Arizona", 'us-az': 'Arizona',
"u-ca": "California", 'us-ca': 'California',
"u-co": "Colorado", 'us-co': 'Colorado',
"u-ct": "Connecticut", 'us-ct': 'Connecticut',
"u-de": "Delaware", 'us-de': 'Delaware',
"u-fl": "Florida", 'us-fl': 'Florida',
"u-ga": "Georgia", 'us-ga': 'Georgia',
"u-hi": "Hawaii", 'us-hi': 'Hawaii',
"u-ia": "Iowa", 'us-ia': 'Iowa',
"u-id": "Idaho", 'us-id': 'Idaho',
"u-il": "Illinois", 'us-il': 'Illinois',
"u-in": "Indiana", 'us-in': 'Indiana',
"u-ks": "Kansas", 'us-ks': 'Kansas',
"u-ky": "Kentucky", 'us-ky': 'Kentucky',
"u-la": "Louisiana", 'us-la': 'Louisiana',
"u-ma": "Massachusetts", 'us-ma': 'Massachusetts',
"u-md": "Maryland", 'us-md': 'Maryland',
"u-me": "Maine", 'us-me': 'Maine',
"u-mi": "Michigan", 'us-mi': 'Michigan',
"u-mn": "Minnesota", 'us-mn': 'Minnesota',
"u-mo": "Missouri", 'us-mo': 'Missouri',
"u-ms": "Mississippi", 'us-ms': 'Mississippi',
"u-mt": "Montana", 'us-mt': 'Montana',
"u-nc": "North Carolina", 'us-nc': 'North Carolina',
"u-nd": "North Dakota", 'us-nd': 'North Dakota',
"u-ne": "Nebraska", 'us-ne': 'Nebraska',
"u-nh": "New Hampshire", 'us-nh': 'New Hampshire',
"u-nj": "New Jersey", 'us-nj': 'New Jersey',
"u-nm": "New Mexico", 'us-nm': 'New Mexico',
"u-nv": "Nevada", 'us-nv': 'Nevada',
"u-ny": "New York", 'us-ny': 'New York',
"u-oh": "Ohio", 'us-oh': 'Ohio',
"u-ok": "Oklahoma", 'us-ok': 'Oklahoma',
"u-or": "Oregon", 'us-or': 'Oregon',
"u-pa": "Pennsylvania", 'us-pa': 'Pennsylvania',
"u-ri": "Rhode Island", 'us-ri': 'Rhode Island',
"u-sc": "South Carolina", 'us-sc': 'South Carolina',
"u-sd": "South Dakota", 'us-sd': 'South Dakota',
"u-tn": "Tennessee", 'us-tn': 'Tennessee',
"u-tx": "Texas", 'us-tx': 'Texas',
"u-ut": "Utah", 'us-ut': 'Utah',
"u-va": "Virginia", 'us-va': 'Virginia',
"u-vt": "Vermont", 'us-vt': 'Vermont',
"u-wa": "Washington", 'us-wa': 'Washington',
"u-wi": "Wisconsin", 'us-wi': 'Wisconsin',
"u-wv": "West Virginia", 'us-wv': 'West Virginia',
"u-wy": "Wyoming", 'us-wy': 'Wyoming',
uy: "Uruguay", uy: 'Uruguay',
uz: "Uzbekistan", uz: 'Uzbekistan',
va: "Vatican City (Holy See)", va: 'Vatican City (Holy See)',
vc: "Saint Vincent and the Grenadines", vc: 'Saint Vincent and the Grenadines',
ve: "Venezuela", ve: 'Venezuela',
vg: "British Virgin Islands", vg: 'British Virgin Islands',
vi: "United States Virgin Islands", vi: 'United States Virgin Islands',
vn: "Vietnam", vn: 'Vietnam',
vu: "Vanuatu", vu: 'Vanuatu',
wf: "Wallis and Futuna", wf: 'Wallis and Futuna',
ws: "Samoa", ws: 'Samoa',
xk: "Kosovo", xk: 'Kosovo',
ye: "Yemen", ye: 'Yemen',
yt: "Mayotte", yt: 'Mayotte',
za: "South Africa", za: 'South Africa',
zm: "Zambia", zm: 'Zambia',
zw: "Zimbabwe" zw: 'Zimbabwe',
} }

View file

@ -7,6 +7,9 @@ export default defineConfig({
manifest: { manifest: {
permissions: ['tabs', 'activeTab', 'webRequest', 'file://*', 'debugger'], permissions: ['tabs', 'activeTab', 'webRequest', 'file://*', 'debugger'],
host_permissions: ['https://ip.albert.lol/*', 'https://dns.google/*', 'https://flagcdn.com/*'], host_permissions: ['https://ip.albert.lol/*', 'https://dns.google/*', 'https://flagcdn.com/*'],
action: {
default_title: 'Host Info',
},
}, },
vite: () => ({ vite: () => ({
plugins: [tailwindcss()], plugins: [tailwindcss()],