export default async function(req: Request): Promise<Response> {
const url = new URL(req.url);
const headers = Object.fromEntries(req.headers.entries());
if (url.pathname === "/help") {
return new Response("Available paths: list, ip, agent, ct, help");
}
if (url.pathname === "/list") {
let text = Object.entries(headers).map(([k, v]) => `${k}: ${v}`).join("\n");
return new Response(text);
}
if (url.pathname === "/ip") {
return new Response(req.headers.get("true-client-ip"));
}
if (url.pathname === "/agent") {
return new Response(req.headers.get("user-agent"));
}
if (url.pathname === "/ct") {
return new Response(req.headers.get("cf-ipcountry"));
}
return Response.json({ headers });
}