57 lines
2.0 KiB
JavaScript
57 lines
2.0 KiB
JavaScript
async function handleRequest(request) {
|
|
|
|
// 创建一个空对象来存储请求头数据
|
|
const headers = {}
|
|
|
|
// 遍历请求头数据并将其存储在对象中
|
|
for (const [name, value] of request.headers.entries()) {
|
|
headers[name] = value
|
|
}
|
|
|
|
const url = new URL(request.url);
|
|
const path = url.pathname;
|
|
|
|
// 用来返回的数据
|
|
let returnData = {}
|
|
returnData["ip"] = headers["EO-Connecting-IP"];
|
|
returnData["user-agent"] = headers["User-Agent"];
|
|
if(returnData["user-agent"] === undefined){
|
|
returnData["user-agent"] = headers["user-agent"];
|
|
}
|
|
returnData["geo"] = request.eo.geo;
|
|
returnData["version"] = "0.4";
|
|
|
|
if(path === "/"){
|
|
const returnDataStr = "/\t\t\tHelp\n/info\t\t\tALL Info(JSON)\n/ip\t\t\tIP(String)\n/ip/json\t\tIP(Json)\n/ua\t\t\tUser-Agent Data\n/country\t\tCountry";
|
|
return new Response(returnDataStr, {status: 200})
|
|
|
|
} else if(path === "/country"){
|
|
const country = returnData["geo"]?.countryCodeAlpha2 || "Country not available";
|
|
return new Response(country, {status: 200})
|
|
|
|
} else if(path === "/ua"){
|
|
const returnDataStr = returnData["user-agent"];
|
|
return new Response(returnDataStr, {status: 200})
|
|
}else if(path === "/info"){
|
|
const returnDataStr = JSON.stringify(returnData);
|
|
return new Response(returnDataStr, {status: 200,headers: {'Content-Type':'application/json'}})
|
|
}else if(path === "/ip/json"){
|
|
let returnDataTemp ={};
|
|
returnDataTemp["ip"] = returnData["ip"];
|
|
returnDataTemp["geo"] = returnData["geo"];
|
|
const returnDataStr = JSON.stringify(returnDataTemp)
|
|
return new Response(returnDataStr, {status: 200,headers: {'Content-Type':'application/json'}})
|
|
}else if(path === "/ip"){
|
|
const returnDataStr = returnData["ip"];
|
|
return new Response(returnDataStr, {status: 200})
|
|
}else if(path === "/favicon.ico"){
|
|
// 浏览器图标响应200
|
|
return new Response("", {status: 200})
|
|
}else{
|
|
return new Response("404", {status: 404})
|
|
}
|
|
}
|
|
|
|
addEventListener('fetch', event => {
|
|
return event.respondWith(handleRequest(event.request));
|
|
}); |