基于 Next.js 和 EdgeOne Pages Functions 构建的实时地理位置检测应用。自动检测用户 IP 地址并显示地理位置信息,具有精美的响应式界面和暗黑模式支持。
| 端点 | 描述 |
|---|---|
GET / | 主页面,显示地理位置信息 |
GET /geo | 返回 JSON 格式的地理数据 |
GET /zh | 返回带中文翻译的地理数据 |
GET /headers | 通过 HTTP 响应头返回地理数据 |
| 响应头 | 描述 |
|---|---|
x-geo-city | 城市名称 |
x-geo-country | 国家名称 |
x-geo-region | 省份/地区名称 |
x-client-ip | 客户端 IP 地址 |
x-isp | 互联网服务提供商 |
x-asn | 自治系统号 |
x-latitude | 纬度坐标 |
x-longitude | 经度坐标 |
x-tls-version | TLS 加密版本 |
x-country-code | ISO 3166-1 alpha-2 国家代码 |
x-request-id | 唯一请求标识符 |
git clone https://github.com/your-username/geolocation.git
cd geolocation
npm install
npm run dev
打开 http://localhost:3000 查看应用。
npm run build
npm run start
├── app/
│ ├── page.tsx # 主页面组件
│ ├── layout.tsx # 根布局
│ └── globals.css # 全局样式
├── components/
│ ├── AppleIcons.tsx # SVG 图标组件
│ └── ThemeToggle.tsx # 暗黑模式切换组件
├── functions/
│ ├── geo/index.ts # /geo 端点
│ ├── zh/index.ts # /zh 端点(中文)
│ └── headers/index.ts # /headers 端点
├── lib/
│ ├── utils.ts # 工具函数
│ └── kv-storage.ts # KV 存储操作封装
├── types/
│ └── kv.d.ts # TypeScript 类型定义
└── package.json
项目集成了 EdgeOne Pages KV 存储,提供访问数据记录功能:
Geolocation KV 命名空间并绑定到项目详细配置说明请参考 KV_STORAGE_README.md
ISC