前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >反代腾讯地图API做自己的IP归属地接口

反代腾讯地图API做自己的IP归属地接口

原创
作者头像
蛋黄
发布2024-11-22 15:41:54
发布2024-11-22 15:41:54
1340
举报
文章被收录于专栏:蛋黄的部落格蛋黄的部落格

1.注册腾讯位置服务开放平台

点我

2. 注册应用并获取密钥

在腾讯位置服务开放平台完成注册后:

  • 创建新应用并为其命名(例如:IP 定位服务)。
  • 获取应用的 Key,此密钥将在后续代码中用于 API 请求验证。

3.安装nodejs

在ssh终端执行以下命令

代码语言:txt
复制
#debian系
sudo apt update
sudo apt install nodejs
sudo apt install npm
#centos
sudo yum install epel-release
sudo yum install nodejs

4.安装依赖并部署

在服务器中,安装必要的依赖库:

代码语言:txt
复制
npm install express
npm install axios

接下来,新建一个 app.js 文件,输入以下代码:

代码语言:txt
复制
# app.js
const express = require("express");
const axios = require("axios");
const app = express();

// API密钥
const API_KEY = "此处替换为刚申请的密钥";

app.get("/", (req, res) => {
  const clientIp = req.headers["x-forwarded-for"];
  const ip = clientIp.split(",")[0].trim();
  const requestedIp = req.query.ip || ip;
  const url = `https://apis.map.qq.com/ws/location/v1/ip?ip=${requestedIp}&key=${API_KEY}`;
  axios
    .get(url)
    .then((response) => {
      res.json(response.data);
    })
    .catch((error) => {
      res
        .status(500)
        .json({ error: "An error occurred while fetching the data" });
    });
});
//监听端口
const port = 3002;
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

启动服务:

代码语言:txt
复制
node app.js  

启动后,控制台会显示:

代码语言:txt
复制
Server running on port 3002  

访问 <服务器 IP>:3002,确保服务正常运行。如果启动失败,检查 app.js 文件和密钥配置。

配置进程守护

安装pm2

代码语言:txt
复制
npm install pm2@latest -g

通过pm2启动文件

为了确保服务在服务器重启后自动运行,可以使用 PM2 进行进程管理:

代码语言:txt
复制
pm2 start app.js --name ip-location-service  

5. 配置反向代理(以宝塔面板为例)

为了通过域名访问服务,可以配置反向代理:

  1. 进入宝塔面板,点击 网站 -> 反向代理 -> 添加反代
  2. 设置以下参数:
    • 域名:填写域名(如 example.com)。
    • 目标 URL:填写 http://127.0.0.1:3002(3002 是应用监听的端口)。

5.访问域名查看效果

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.注册腾讯位置服务开放平台
  • 点我
  • 2. 注册应用并获取密钥
  • 3.安装nodejs
  • 4.安装依赖并部署
  • 5. 配置反向代理(以宝塔面板为例)
  • 5.访问域名查看效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档