# eooserverfor **Repository Path**: rootxss/eooserverfor ## Basic Information - **Project Name**: eooserverfor - **Description**: 显示当前IP,并且提示用户所在地区不提供服务 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-06 - **Last Updated**: 2026-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # eooserverfor 服务不可用(地区限制)说明页:展示访问者 IPv4/IPv6、国家/地区、时区、运营商、ASN,并在右侧以高德地图展示 IP 经纬度位置。多语言随访问者地区自动切换。 数据来源:[ip.sb](https://ip.sb/api/)(`https://api.ip.sb/geoip`),浏览器端直连。 ## 环境变量 | 变量 | 必填 | 说明 | |---|---|---| | `NEXT_PUBLIC_AMAP_KEY` | 是(地图功能) | 高德「Web端(JS API)」Key,浏览器加载地图用 | | `AMAP_SECURITY_CODE` | 是(地图功能) | JS API Key 的配套安全密钥(securityJsCode),服务端代理转发用 | | `AMAP_WEB_KEY` | 是(地址/转换功能) | 高德「Web服务」Key,服务端代理 convert/regeo 用,不暴露浏览器 | 所有凭据在高德开放平台创建,见 [`.env.example`](.env.example)。开发时复制 `.env.example` 为 `.env.local` 并填入。 > **Key 与安全密钥机制**:高德「Web端(JS API)」Key 自 2021-12-02 起必须搭配安全密钥 > (securityJsCode)使用;「Web服务」Key 只有 Key、无需安全密钥。因此本项目用三个变量配合: > - `NEXT_PUBLIC_AMAP_KEY`:构建时内联到浏览器,加载 `webapi.amap.com` 地图; > - `AMAP_SECURITY_CODE`:仅服务端持有,由 `/amap-service` 代理在转发 JS API 的 > Web 服务请求时附加 `jscode`,浏览器不接触; > - `AMAP_WEB_KEY`:仅服务端持有,由 `/api/amap/convert`、`/api/amap/regeo` 代理 > 调用高德 Web 服务 API。 ## Getting Started First, run the development server: ```bash npm run dev # or yarn dev # or pnpm dev # or bun dev ``` Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. ## Learn More To learn more about Next.js, take a look at the following resources: - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! ## Deploy on Vercel The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. ## 部署到腾讯 EdgeOne(腾讯云边缘安全加速平台) 本项目包含静态页面(`/`、`/unavailable`)与 Next.js API route(`/api/amap/convert`、`/api/amap/regeo`),部署 EdgeOne 时需选择支持 **Next.js 全栈 / API Routes** 的运行方式(EdgeOne Pages 函数或云函数)。 ### 1. 配置环境变量 在 EdgeOne 控制台(站点 → 部署/构建配置)添加两个变量: ``` # 构建变量(NEXT_PUBLIC_ 前缀构建时内联到客户端) NEXT_PUBLIC_AMAP_KEY=你的高德JS_API_Key # 运行环境变量(仅服务端,不进入浏览器) AMAP_SECURITY_CODE=你的JS_API安全密钥 AMAP_WEB_KEY=你的高德Web服务Key ``` - `NEXT_PUBLIC_AMAP_KEY`:高德「Web端(JS API)」类型 Key,浏览器加载地图;必须以 `NEXT_PUBLIC_` 开头,构建时内联。 - `AMAP_SECURITY_CODE`:JS API Key 的安全密钥(securityJsCode)。浏览器把 JS API 的 Web 服务请求转发到本站 `/amap-service`,服务端附加该密钥后转发给高德;密钥不进入浏览器。 - `AMAP_WEB_KEY`:高德「Web服务」类型 Key(只有 Key、无安全密钥),仅供服务端 API route 调用。 - 三个变量都在[高德开放平台](https://console.amap.com/dev/key/app)创建,并把您的 EdgeOne 域名(以及本地开发 `http://localhost:3000`)加入域名白名单。 - 若 `NEXT_PUBLIC_AMAP_KEY` 或 `AMAP_SECURITY_CODE` 未配置:地图区域显示「地图服务未配置」占位(2021-12-02 后创建的 Key 缺安全密钥无法加载地图)。 - 若 `AMAP_WEB_KEY` 未配置:地图仍显示(用原始坐标),但坐标转换与详细地址功能不可用。 ### 2. 构建与推送 ```bash npm install npm run build # 或 npm run dev 本地预览 ``` 把仓库推送到您的 Git 远端后,在 EdgeOne 控制台关联仓库并选择 **Next.js** 构建框架(构建命令 `npm run build`、输出目录 `.next` 或按平台约定),即可自动部署。 ### 3. 说明 - 页面运行时由浏览器直接请求 `https://api.ip.sb/geoip`(CORS 开放、无需 Key),获取访问者 IP/地区/时区/运营商/ASN 与 WGS-84 经纬度。 - 坐标转换与逆地理编码:浏览器调用本站 `/api/amap/convert`、`/api/amap/regeo`,由服务端携带 `AMAP_WEB_KEY` 代理请求高德 Web 服务 API(`restapi.amap.com`),Key 不暴露。 - 地图:浏览器直接加载 `webapi.amap.com/maps?v=2.0&key=NEXT_PUBLIC_AMAP_KEY`(JS API);其 Web 服务请求经 `/amap-service` 服务端代理附加 `jscode=AMAP_SECURITY_CODE` 后转发。 - 如需在 EdgeOne 配置 CSP,请放行:`webapi.amap.com`(JS API)、`restapi.amap.com`(服务端出站,浏览器无需放行)、`api.ip.sb`、`api-ipv4.ip.sb`、`api-ipv6.ip.sb`。 - 猎鹰围栏:地图上以 IP 位置为圆心绘制 5km 圆形围栏(JS API `AMap.Circle`,前端可视化);如需服务端围栏管理可参考[猎鹰轨迹围栏 API](https://lbs.amap.com/api/track/lieying-kaifa/api/track_fence)。