前言
我是参照腾讯EDGEONE的官方示例做的。参考文档https://cloud.tencent.com/document/product/1552/107290
代码
// 添加fetch事件监听器,当有请求进入时触发,使用handleRequest函数处理请求,并返回响应
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
// 定义一个异步函数handleRequest,用于处理传入的请求
async function handleRequest(request) {
// 获取客户端IP
const ip = request.eo.clientIp || '';
// 获取地理位置信息(如果可用)
const geo = request.eo.geo || {};
// 获取User Agent
const userAgent = request.headers.get('User-Agent') || 'Unknown';
// 构建JSON数据对象,包含IP、地理信息和User Agent
const data = {
ip: ip, // 客户端IP
userAgent: userAgent, // 用户User Agent
asn: geo.asn, // 自治域系统编号
countryName: geo.countryName, // 国家名称
countryCodeAlpha2: geo.countryCodeAlpha2, // 国家两字母代码
countryCodeAlpha3: geo.countryCodeAlpha3, // 国家三字母代码
countryCodeNumeric: geo.countryCodeNumeric, // 国家数字代码
regionName: geo.regionName, // 地区名称
regionCode: geo.regionCode, // 地区代码
cityName: geo.cityName, // 城市名称
latitude: geo.latitude, // 纬度
longitude: geo.longitude // 经度
};
// 返回一个新的Response对象,包含JSON数据
return new Response(JSON.stringify(data), {
headers: {
'content-type': 'application/json;charset=UTF-8', // 设置响应头为JSON类型
},
});
}
将上面的代码添加到函数之中,即可生成对应的接口了,通过访问对应的worker地址,响应的信息如下,我将我的信息打码了
ip "122.190.*.*"
userAgent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0"
asn 48*
countryName "China"
countryCodeAlpha2 "CN"
countryCodeAlpha3 "CHN"
countryCodeNumeric "156"
regionName "Hubei"
regionCode "CN-HB"
cityName "Xianning"
latitude *9.*
longitude 1*.32249450683594